sed コマンドは、複数の桁を行番号で置き換えます。

sed コマンドは、複数の桁を行番号で置き換えます。

連絡先リストがあります。

例えば

aashish 7905209890  
abhishek    9129429439  
anmol   918416973189    
avinash 917068575283

各電話番号を回線番号に変更したいと思います。

最初の電話番号を1に変更し、2番目の電話番号を2に変更し、3番目の電話番号を変更したいと思います。 3等で

ベストアンサー1

使用するには、gawk次のものを使用できます。

gawk -i inplace '{print $1, NR}' your_contact_list.txt

通常、Linuxディストリビューションではこのawkコマンドがgawk

awk -i inplace '{print $1, NR}' your_contact_list.txt

しかし、以下をawk -i inplace使用すると、awk --posix -i inplace次のエラーが表示されるため、POSIXと互換性がないようです。

awk: inplace:30: @load "inplace"
awk: inplace:30:  ^ syntax error

したがって、次のものを使用できます。

awk '{print $1, NR}' your_contact_list.txt > new_contact_list.txt

メモ:デフォルトの区切り文字(スペース)のみを使用して最初と2番目の列を印刷したい場合に使用できます'{print $1, NR}'。これにより、2つの文字列の間にスペースがある最初の列(たとえばaashish)と現在の数値行が印刷されます。

2つの列の間に文字列を指定するには、-v OFS='some string'awkコマンドラインでフィールド区切り文字を設定できます。

awk -i inplace -v OFS=' -- ' '{print $1, NR}' your_contact_list.txt
#Output:
aashish -- 1
abhishek -- 2
anmol -- 3
avinash -- 4

おすすめ記事