Unixファイルの特定の数字を置き換える

Unixファイルの特定の数字を置き換える

Unixファイルシステムで特定の数字を置き換えるコマンドを作成したいと思います。たとえば、次のようになります。

ZAR     ZEC      ZDA
-9         2      3
4          8      -9
5          6      7

私のタイトルはZAR、です ZECZDA-9をZDA+9に置き換える必要があります。ZARフィールド内の他の値(「-9」など)以外の数値を変更するには、どのコマンドを作成する必要がありますか?

ベストアンサー1

-9ファイルの3番目の列に表示される内容を次に変更するには、次の手順を実行します+9

$ awk '$3==-9 {$3="+9"} 1' OFS='\t' file
ZAR     ZEC     ZDA
-9      2       3
4       8       +9
5       6       7

$3==-93番目の列で行を選択します-9。これらの行の場合、割り当ては$3="+9"列をに変更します+9。これは1print-the-lineのawkの神秘的な速記です。最後に、OFS='\t'タブ文字をフィールド区切り文字として使用して出力を印刷するように awk に指示します。

場所でファイルを変更する

GNU awkを使用する(Linux):

awk -i inplace '$3==-9 {$3="+9"} 1' OFS='\t' file

BSD/OSX awkの使用:

awk '$3==-9 {$3="+9"} 1' OFS='\t' file >tmp && mv tmp file

おすすめ記事