쉘 명령을 사용하여 각 줄에 줄 번호를 추가하는 방법은 무엇입니까?

쉘 명령을 사용하여 각 줄에 줄 번호를 추가하는 방법은 무엇입니까?

내 파일,

PSS-A  (Primary A)
PSS-B  (Primary B)
PSS-C  (Primary C)
PSS-D  (Primary D)
PSS-E  (Primary E)
PSS-F  (Primary F)
PSS-G  (Primary G)
PSS-H  (Primary H)
PSS-I  (Primary I)
SPARE  (SPARE)

결과물 파일,

 1> PSS-A  (Primary A)
 2> PSS-B  (Primary B)
 3> PSS-C  (Primary C)
 4> PSS-D  (Primary D)
 5> PSS-E  (Primary E)
 6> PSS-F  (Primary F)
 7> PSS-G  (Primary G)
 8> PSS-H  (Primary H)
 9> PSS-I  (Primary I)
10> SPARE  (SPARE)

답변1

작업에 적합한 도구는 다음과 같습니다 nl.

nl -w2 -s'> ' file

파일의 총 줄 수를 기준으로 idth 옵션을 조정 해야 할 수도 있습니다 w(숫자가 잘 정렬되도록 하려면).

산출:

 1> PSS-A  (Primary A)
 2> PSS-B  (Primary B)
 3> PSS-C  (Primary C)
 4> PSS-D  (Primary D)
 5> PSS-E  (Primary E)
 6> PSS-F  (Primary F)
 7> PSS-G  (Primary G)
 8> PSS-H  (Primary H)
 9> PSS-I  (Primary I)
10> SPARE  (SPARE)

답변2

지정된 것과 동일한 형식을 원하는 경우

awk '{print NR  "> " $s}' inputfile > outputfile

그렇지 않으면 표준은 아니지만 cat이 명령의 대부분 구현은 줄 번호를 인쇄할 수 있습니다(적어도 GNU, busybox, Solaris 및 FreeBSD 구현에서는 숫자가 너비 6으로 채워지고 그 뒤에 TAB이 표시됩니다).

cat -n inputfile > outputfile

또는 정규 표현식과 함께 grep -n(숫자 뒤에 )를 사용할 수 있습니다 . 예를 들어 임의의 행과 일치합니다.:^

grep -n '^' inputfile > outputfile

답변3

Linux/Unix에서는 일반적인 작업을 수행하는 데 거의 항상 여러 가지 방법이 있습니다. 완전성을 기하기 위해, 명백한 방법 외에도 사용할 수 있는 몇 가지 다른 방법은 다음과 같습니다.

    pr -t -n [file]

라인 프린터로 보내기 위해 텍스트 서식을 지정하는 이전 명령에서 유래되었습니다. "-t"는 터미널 독립적인 머리글 및 바닥글 정보를 생략합니다.

이것은 다른 모든 줄에 줄 번호를 인쇄하는 귀여운 sed 방법입니다. "붙여넣기"를 사용하여 한 줄로 축소합니다.

    sed = /etc/passwd | paste - -

또는 실제 편집기인 ed를 사용할 수도 있습니다.

    echo '1,$n' | ed -s [file]

또는 예를 들어 vi의 커서 주소가 없는 이전 버전은 다음과 같습니다.

    printf 'set number\ng/^/p\n' | ex /etc/passwd

ksh93 또는 bash(및 seq 명령. .. ranges 및 eval 문 사용은 연습으로 남겨 둡니다)가 필요한 최종 복잡한 답변입니다.

    paste <(seq $(wc -l < [file])) [file]

Debian Linux, FreeBSD 및 Solaris 10에서 테스트되었습니다(마지막 버전은 "seq"가 없어 실패했습니다).

답변4

나는 다음 방법으로 그것을했다

주문하다:cat -n filename |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"

산출

cat -n u.txt |sed -r "s/^\s+//g"| sed "s/^[0-9]*/&\> /g"
1>  PSS-A  (Primary A)
2>  PSS-B  (Primary B)
3>  PSS-C  (Primary C)
4>  PSS-D  (Primary D)
5>  PSS-E  (Primary E)
6>  PSS-F  (Primary F)
7>  PSS-G  (Primary G)
8>  PSS-H  (Primary H)
9>  PSS-I  (Primary I)
10>     SPARE  (SPARE)

관련 정보