연락처 목록이 있습니다.
예를 들어
aashish 7905209890
abhishek 9129429439
anmol 918416973189
avinash 917068575283
각 전화번호를 회선번호로 바꾸고 싶습니다.
첫 번째 전화번호를 1로 바꾸고 두 번째 전화번호를 2로 바꾸고 세 번째 전화번호를 바꾸고 싶습니다. 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
노트:기본 구분 기호(공백)만 사용하여 첫 번째 및 두 번째 열을 인쇄하려는 경우 를 사용할 수 있습니다 '{print $1, NR}'
. 이렇게 하면 두 문자열 사이에 공백이 있는 첫 번째 열(예: aashish
)과 현재 숫자 행이 인쇄됩니다.
두 열 사이에 문자열을 지정하려면 -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
사용진주하나의 선:
$ perl -i -lane 'print "$F[0] $."' file
$ cat file
aashish 1
abhishek 2
anmol 3
avinash 4