次の形式のabc.csvというファイルがあります。
aa,size:12
bb,size:13
cc,size:3
size:を削除したいです。ファイルは次のようになります。
aa,12
bb,13
cc,3
誰もがこれを行うためにシェルスクリプトを使用する方法を教えてもらえますか?
答え1
これを簡単に使用できますsed
。
sed -i -- 's/size://' abc.csv
s/size://
size:
で置き換えられる単純な正規表現です<blank>
。
答え2
-i
以下は、sedバージョンがこのフラグをサポートしていないUnixユーザー(Solarisやsed
デフォルトでBSDに付属のOS Xなど)に便利な代替コマンドです。
sed 's/size://' abc.csv > tmpfile; mv tmpfile abc.csv
g
特定の例では、「size:」は1行に複数回表示されないため、sedコマンドの最後にあるオプションは必要ありません。
編集する: 小さいファイルの場合は、不要な一時ファイルの生成を防ぐために、更新されたコンテンツを変数に保存することもできます。
new="$(sed 's/size://' abc.csv)"; echo "$new" > abc.csv
この方法も能力を許可する"$new"
元のファイルを上書きする前に、健全性チェックのために変数(更新されたファイル)をSTDOUTにエコーします。