awk/sed: 텍스트 범위에 줄 번호 추가

awk/sed: 텍스트 범위에 줄 번호 추가

그래서 나는 범위를 가지고 있습니다. 2-4라고 가정 해 봅시다. 세 줄이 있습니다.

first
second
third

내 출력은 다음과 같아야 합니다.

2 first
3 second
4 third

나는 이것을 BSD(Mac) awk/sed에서 시도하고 있는데, 이것이 더 어려워지는 것 같습니다.

답변1

nl매우 적합:

nl -v2 -p -ba

계산은 2( )부터 시작하고 -v2, 페이지 변경을 무시하고( -p) 모든 행에 번호를 매깁니다( -ba).

답변2

앞쪽:

awk '{printf("%s %s\n", FNR+1, $0)}' file

매개변수를 전달하려는 경우:

awk -vn=2 '{printf "%s %s\n", n++, $0}' <file

파일이 범위보다 긴 경우에만 범위를 생성하려는 경우:

awk -v s=2 -v e=4 'BEGIN{for(n=s;n<=e;n++)print n}' | paste -d' ' - file

답변3

순수한 bash 스크립트를 사용하시겠습니까?

i=2; cat output.txt | while IFS= read -r line; do
    echo "$i $line"
    i=$((i+1))
done

관련 정보