less 유틸리티의 출력을 파일로 리디렉션

less 유틸리티의 출력을 파일로 리디렉션

이게 내가 한 일이야

less -N file1 > file2

내가 원하는 것은 줄 번호 옵션을 사용하여 파일 1을 파일 2에 쓰는 것입니다.

하지만 나는 실패했습니다.

이 작업에 대한 제안 사항이 있나요? 나는 왜 그것을 할 수 없었습니까?

감사해요.

답변1

less작업에 적합한 도구가 아닙니다.

다음을 위해 사용할 수 있습니다 cat:

cat -n file1 >file2

또는 nl:

nl -ba file1 >file2

또는 pr:

pr -n -t -T file1 >file2

또는 sed:

sed '/./=' file1 | sed '/./N; s/\n/\t/' >file2

또는 grep:

grep -n . file1 | sed 's/:/\t/' >file2

또는 awk:

awk '{ $0 = NR "\t" $0 } 1' file1 >file2

아니면 다시 awk:

awk '{ sub(/^/, NR "\t") } 1' file1 >file2

또는 perl:

perl -pe '$_=$.."\t".$_' file1 >file2

아니면 다시 perl:

perl -pe 's/^/$.\t/' file1 >file2

또는 seqpaste:

seq $(wc -l file1 | cut -d' ' -f1) | paste - file1 >file2

또는 간단한 쉘 스크립트도 가능합니다:

count=0
while IFS= read -r line; do
    let count++
    printf '%d\t%s\n' $count "$line"
done <file1 >file2

그러나 이것은 less잘못된 도구입니다. :)

답변2

첫 번째 추측(확인하려면 소스 코드를 자세히 조사해야 함) less은 사용자 인터페이스 도구라는 것입니다. 즉, 터미널 동작을 변경합니다. less가벼운 쉘과 같다는 것을 알 수 있습니다 (예를 들어 /검색을 위한 내부 명령이 있음). 표시되는 콘텐츠는 리디렉션되지 않을 수 있습니다. 이름에서 알 수 있듯이아니요[표준] 출력.

필요한 작업에 적합한 도구는 nl다음과 같습니다.조립식 쇠지레제안.

관련 정보