我喜歡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