我有一個文本文件,其中包含以下幾行:使用sed或awk替換另一個字段的字段
100 200 300
50 120 200
60 500 340
我正在編寫一個腳本,以根據用戶輸入更改任何字段的值。如果用戶在bash中給出列號($ colno)和行號($ rowno),我使用下面的代碼來確定要替換的確切字段。
awk -v i=$colno -v j=$rowno 'NR ==j {print $i}' file
因此,如果用戶將$ colno作爲1並將$ rownno作爲3,我可以在第3行(60)中找到字段$ 1。
現在我想永久替換這個值(60)與其他用戶給定的值($ new_val)。
如何使用sed或awk執行此操作?這段代碼將允許我用用戶指定的新值更改用戶指定的任何字段。該代碼不應該更改任何其他字段,即使具有相同的值。
請幫幫我。提前感謝你。
awk將無法編輯文件和sed需要-i選項。 – grail
「永久替換」是指用'awk'還是'sed'寫文件? – Zlemini
如果就地編輯是您需要的,我建議您在其他地方備份文件。如果用戶有'$ colno'或'$ rowno'錯字,那麼它不是無足輕重的。 – Zlemini