Development Tip

파일의 모든 줄 시작 부분에 숫자 추가

yourdevel 2020. 12. 9. 21:51
반응형

파일의 모든 줄 시작 부분에 숫자 추가


파일의 모든 줄 시작 부분에 숫자를 추가하려면 어떻게해야합니까?

예 :

이것은
텍스트
파일에서.

된다 :

000000001 이것은
000000002 텍스트
파일에서 000000003.

AWK의 printf와는 , NR그리고 $0쉽게 서식을 통해 정확하고 유연하게 제어 할 수 있도록 :

~ $ awk '{printf("%010d %s\n", NR, $0)}' example.txt
0000000001 This is
0000000002 the text
0000000003 from the file.

고양이 또는 그렇게하도록 설계되지 않은 다른 도구를 사용하지 마십시오. 프로그램 사용 :

nl-파일 라인 수

예:

nl --number-format=rz --number-width=9 foobar

nl이 그것을 위해 만들어 졌기 때문에 ;-)


다음 nl(1)명령을 찾고 있습니다 .

$ nl -nrz -w9  /etc/passwd
000000001   root:x:0:0:root:/root:/bin/bash
000000002   daemon:x:1:1:daemon:/usr/sbin:/bin/sh
000000003   bin:x:2:2:bin:/bin:/bin/sh
...

-w99 자리 숫자를 요구합니다. -nrz0 패딩을 사용하여 숫자를 오른쪽 맞춤 형식으로 지정하도록 요청합니다.


cat -n thefile 약간 다른 형식의 숫자로 작업을 수행합니다.


가장 쉽고 간단한 옵션은

awk '{print NR,$0}' file

nl이 실제로 최선의 선택이 아닌 이유에 대한 위의 주석을 참조하십시오.


perl -pe 'printf "%09u ", $.' -- example.txt

다음은이 작업도 수행하는 bash 스크립트입니다.

#!/bin/bash
counter=0
filename=$1
while read -r line
do
  printf "%010d %s" $counter $line
  let counter=$counter+1
done < "$filename"

참고 URL : https://stackoverflow.com/questions/8206370/add-numbers-to-the-beginning-of-every-line-in-a-file

반응형