텍스트 파일의 각 줄 시작 부분에 줄 번호와 탭을 어떻게 추가 할 수 있습니까?
awk '{printf "%d\t%s\n", NR, $0}' < filename
Nl 명령이이를 수행해야하지만 행 번호 앞에 공백도 추가합니다. Linux coreutils의 일부입니다.
nl lines.txt
1 $bkWTN
2 $cV8$.
sed = test.txt | sed 'N;s/\n/\t/'
"sed ="명령은 줄 번호와 캐리지 리턴, 다음 줄을 출력합니다.
"N; s/\ n/\ t /"표현식은 각 줄을 가져 와서 다음 줄 (예 : 줄 번호와 줄)을 가져오고 캐리지 리턴을 탭으로 바꿉니다.
cat -n <yourfile> | Perl -pe "s/^\s*(\d+)\s+/\1\t/"
cat -n은 행 번호를 "123 linecontents"로 추가하고 regexp는이를 "linenumberTABlinecontents"로 수정합니다.
Perl -pe "s/^/$.\t$_/" file.txt
또는
Perl -ne "print qq($.\t$_)" file.txt
다음은 한 줄짜리 bash 솔루션입니다.
$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=
첫 번째 IFS 설정은 bash에게 한 번에 전체 줄을 읽도록 지시합니다. 두 번째 줄은 IFS를 기본값으로 재설정합니다.
추가 보너스로, 그것은 당신의 쉘에서 완전히 실행되며 프로그램을 실행하지 않습니다!
어때요?
cat -n somefile.txt
?
좋아요, 우리는 이것을하는 방법을 모으고 있기 때문에,
grep -n . file.txt | sed 's/\(^[0-9]*\):/\1 /g'
# this is a tab with Ctrl-V + Tab =====> ----
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'
또는 일부 비 GNU sed
s의 경우 :
cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'