Bash +替换列中的字符串/值

时间:2013-05-13 20:29:02

标签: macos bash replace

档案:/etc/newsyslog.conf

我正在尝试替换每行的第3列(计数列)。看起来好像第一列和第二列由制表符分隔。但是,第二列和第三列用空格分隔。

我可以通过以下方式获取第三列的值:

grep /var /etc/newsyslog.conf | cut -d ' ' -f 3

但是,我在设置/替换第三列中的值时遇到问题。问题是我不知道第三列的值对于任何给定的行是什么。使用我所知道的任何方法,很难搜索/替换特定的(第三列)值/字符串。

感谢您提供的任何帮助或建议。

编辑:我应该提到的是Mac OS 10.6系统。

1 个答案:

答案 0 :(得分:2)

最好在这里使用awk来避免多个命令:

awk '/\/var/{print $3}'

修改

awk 'BEGIN{OFS="\t"} /\/var/{$3="14"}1' /etc/newsyslog.conf > temp
mv temp /etc/newsyslog.conf