我有这个价值
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 从输出中删除所有并不总是想要的东西。