sed 명령은 여러 자리를 줄 번호로 바꿉니다.

sed 명령은 여러 자리를 줄 번호로 바꿉니다.

연락처 목록이 있습니다.

예를 들어

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

관련 정보