我探索SED功能sed命令插入文本 - 慶典
什麼我這裏是低於
標識,水果名稱及數量顯示簡單的文本文件。現在我想添加的每個水果的分別數量
fruit.txt背後的水果量
1,apple
2,banana
如何使它變成這個樣子。
預期輸出
sed命令
我的文本文件(fruit.txt)的第一個輸入變成這個樣子
1,apple,50
2,banana,40
我探索SED功能sed命令插入文本 - 慶典
什麼我這裏是低於
標識,水果名稱及數量顯示簡單的文本文件。現在我想添加的每個水果的分別數量
fruit.txt背後的水果量
1,apple
2,banana
如何使它變成這個樣子。
預期輸出
sed命令
我的文本文件(fruit.txt)的第一個輸入變成這個樣子
1,apple,50
2,banana,40
用sed這樣的:
sed -i -r 's/(apple)(,[0-9]*)?$/\1,10/'
sed -i -r 's/(apple)(,[0-9]*)?$/\1,20/'
sed -i -r 's/(apple)(,[0-9]*)?$/\1,30/'
使用AWK:
awk -F, -v OFS="," '/apple/{$3="whatever"}7' file
,但如果你沒有了GNU AWK 4.1,你必須這樣做是爲了寫回文件:幫助
awk -F, -v OFS="," '/apple/{$3="whatever"}7' file >~/foo.tmp && mv ~/foo.tmp file
感謝您的幫助! – user2928337
'7'做什麼?我假設它回寫到原始文件,比如'sed -i'。我在哪裏可以得到這些數字的名單及其含義? – anishsane
@anishsane'7'(任何非零數字)都執行默認awk動作,即「print」 – Kent
的感謝! – user2928337
不客氣,很高興它爲你工作。 – anubhava
抱歉打擾你了,你是否能解釋像什麼是-R,S /等我在正則表達式糟透了。據我所知,** - 我被插入**,** /秒(蘋果)是指從蘋果開始**和**([0-9 *])是指與任何數量開始從0-9和比賽任何背後的**。我不確定?$/\ 1,30/part – user2928337