連絡先リストがあります。
例えば
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
答え2
使用真珠1本のライン:
$ perl -i -lane 'print "$F[0] $."' file
$ cat file
aashish 1
abhishek 2
anmol 3
avinash 4