![awk/sed: 텍스트 범위에 줄 번호 추가](https://linux55.com/image/7596/awk%2Fsed%3A%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EB%B2%94%EC%9C%84%EC%97%90%20%EC%A4%84%20%EB%B2%88%ED%98%B8%20%EC%B6%94%EA%B0%80.png)
그래서 나는 범위를 가지고 있습니다. 2-4라고 가정 해 봅시다. 세 줄이 있습니다.
first
second
third
내 출력은 다음과 같아야 합니다.
2 first
3 second
4 third
나는 이것을 BSD(Mac) awk/sed에서 시도하고 있는데, 이것이 더 어려워지는 것 같습니다.
답변1
답변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