이게 내가 한 일이야
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
또는 seq
및 paste
:
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
다음과 같습니다.조립식 쇠지레제안.