我喜欢awk的是,您可以从文件中获取满足您指定的某个任意字段上的条件的所有行。 例如,如何在您指定的某个任意字段上执行regex替换
awk '$3~/hi/' < test.txt # print all lines where the third field matches the pattern "hi"
或
awk '$2>=2' < test.txt # print all lines where the second field is greater or equal to 2
至于谁是学习UNIX的强大初学者,我绝对着迷此。 现在我想知道是否有一种简单的方法来执行正则表达式替换只在您指定的一些任意字段?例如,我只想在第三个字段上进行regex替换。 我目前的方法是“剪切”我想要的字段并使用perl或sed执行替换,然后将其“粘贴”到原始文件。但我想知道是否有更有效的方法来实现这一点。
感谢
我认为这将是更好的一次读取输入文件中的'BEGIN'块,像'AWK -F之前设置'OFS'值 “”“BEGIN {OFS = “” } {sub ...}'' – Birei