【发布时间】:2021-01-16 20:45:19
【问题描述】:
我有这个价值
option 'staticip' '5.5.5.1'
我只想打印不带引号的5.5.5.1。我用过
cat /etc/filename | grep staticip | awk '{print $3}'
但结果是'5.5.5.1'
【问题讨论】:
我有这个价值
option 'staticip' '5.5.5.1'
我只想打印不带引号的5.5.5.1。我用过
cat /etc/filename | grep staticip | awk '{print $3}'
但结果是'5.5.5.1'
【问题讨论】:
或者,您可以使用tr 删除违规字符:
cat /etc/filename | grep staticip | awk '{print $3}' | tr -d \'
【讨论】:
您可以使用 awk 的 gsub() 函数将引号更改为空。
awk '{gsub(/'"'"'/, "", $3); print $3}'
注意这真的是gsub(/'/, "", $3)。丑陋来自于需要将引号粘合在一起。
【讨论】:
awk '$2=="staticip" && $0=$4' FS="'"
结果
5.5.5.1【讨论】:
您可以使用 awks substr 函数或将其传递给 cut 命令。我让你阅读 awk substr 的手册页。
【讨论】:
要从 awk 输出中删除 ',您可以使用
sed "s/^'//;s/'$//"
此命令仅在输出行的开头和结尾删除 ' ,并且不会像使用 awk 那样繁重,如果使用 tr 也不会那么通用。
awk 在内存中要大得多,而 tr 从输出中删除所有并非总是想要的东西。
【讨论】: