1

我有这个价值

option 'staticip' '5.5.5.1'

我只想打印5.5.5.1没有引号。我有用

cat /etc/filename | grep staticip | awk '{print $3}'

但结果随之而来'5.5.5.1'

4

5 回答 5

12

或者,您可以使用tr删除违规字符:

cat /etc/filename | grep staticip | awk '{print $3}' | tr -d \'
于 2013-02-01T06:43:11.083 回答
1

您可以使用 awk 的gsub()函数将引号更改为空。

awk '{gsub(/'"'"'/, "", $3); print $3}'

注意这是真的gsub(/'/, "", $3)。丑陋来自于需要将引号粘合在一起。

于 2013-02-01T06:42:01.810 回答
1
awk '$2=="staticip" && $0=$4' FS="'"

结果

5.5.5.1
于 2013-02-01T06:42:17.333 回答
0

您可以使用 awks substr 函数或将其传递给 cut 命令。我让您阅读 awk substr 的手册页。

于 2013-02-01T06:42:34.000 回答
0

要从 awk 输出中删除 ',您可以使用 sed "s/^'//;s/'$//" 此命令仅在输出行的开头和结尾删除 ',并且不会像使用 awk 那样繁重,如果使用 tr,则不会那么通用。awk 在内存中要大得多,并且 tr 从输出中删除所有并不总是想要的东西。

于 2021-01-16T12:45:19.603 回答