我想跑:
grep nfs /etc/fstab | awk '{print $2}'
[root@nyproxy5 ~]# grep nfs /etc/fstab | awk '{print $2}'
/proxy_logs
/proxy_dump
/sync_logs
[root@nyproxy5 ~]#
将输出放在由空格分隔的一行中。
我该怎么做?
答案 0 :(得分:3)
如果你不介意一个空格(也没有新行),你可以使用这个awk脚本:
awk '/nfs/{printf "%s ", $2}' /etc/fstab
对于与pattern / nfs /匹配的行,将打印第二列,后跟空格。作为一般规则,将grep管道输入awk是不必要的,因为awk可以自己进行模式匹配。
如果您想在最后添加换行符,可以使用END
块:
awk '/nfs/{printf "%s ", $2}END{print ""}' /etc/fstab
这将打印一个空字符串,后跟输出记录分隔符(这是一个换行符)。这意味着即使找不到匹配的记录,输出中也总是有换行符。如果这是一个问题,你可以使用一个标志:
awk '/nfs/{f=1;printf "%s ", $2}END{if(f)print ""}' /etc/fstab
如果模式匹配,则标志f
设置为true,从而导致打印换行符。
答案 1 :(得分:1)
可以使用tr
命令删除或替换换行符或任何其他字符:
grep nfs /etc/fstab | awk '{print $2}' | tr -c '\n' ' '
如果你想摆脱标签:
| tr -c '\t' ' '