私の入力データファイルabc.txtには次のものがあります。
"20131008","0004","0568","98"
このコマンドを実行してテキストを置き換えます。
nawk -F, -vOFS=',' '{gsub("0568","0808",$3); print }' abc.txt
出力では、区切り文字 "," はスペースで置き換えられます。出力は次のとおりです。
"20131008" "0004" "0568" "98".
この問題を解決するのに役立つ人はいますか?交換してみ-vOFS
ましたが役に立ちませんでした。
ベストアンサー1
この回答は、awk
コマンドライン出力とファイル変更の両方の例と例を示しています。sed
の場合、コマンドライン出力(または変数)で変更された文字列を使用して受信しますawk
が$ awk -F"," '{gsub("0568", "0808", $3)}1' input.txt
、元のファイルは変更されません。
$ cat input.txt
"20131008","0004","0568","98"
$ awk -F"," '{gsub("0568", "0808", $3)}1' input.txt
"20131008" "0004" "0808" "98"
の場合、フラグは内部変更(つまり元のファイルの変更)を表す単純なsed
形式を使用します。sed -i 's/string to replace/new string/g' input.txt
-i
$ cat input.txt
"20131008","0004","0568","98"
$ sed -i 's/0568/0808/g' input.txt
$ cat input.txt
"20131008","0004","0808","98"
リクエストされたものではありませんがnawk
(私はインストールしていません)、助けてくれたことを願っています。