Bir metin dosyasının her satırının başına satır numarası ve sekme ekleyebilir miyim?
awk '{printf "%d\t%s\n", NR, $0}' < filename
Nl komutu bunu yapmalıdır, ancak satır numarasından önce de boşluk ekler. Linux coreutils'in bir parçası.
nl lines.txt
1 $bkWTN
2 $cV8$.
sed = test.txt | sed 'N;s/\n/\t/'
"Sed =" komutu satır numarasını ve ardından satırbaşını yazdıktan sonra bir sonraki satırı yazacaktır.
"N; s/\ n/\ t /" ifadesi her satırı alır, bir sonraki satırı alır (yani, satır numarası ve satır) ve satırbaşını bir sekmeyle değiştirir.
cat -n <yourfile> | Perl -pe "s/^\s*(\d+)\s+/\1\t/"
cat -n, linenumbers karakterini "123 linecontents" olarak ekler ve regexp "linenumberTABlinecontents" olarak değiştirir.
Perl -pe "s/^/$.\t$_/" file.txt
veya
Perl -ne "print qq($.\t$_)" file.txt
Tamam, İşte tek satırlık bir bash çözümü:
$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=
İlk IFS ayarı bash'e aynı anda tam bir satır okumasını söyler. İkinci satır, IFS'yi varsayılana sıfırlar.
Ek bir avantaj olarak, tamamen Shell'inizde çalışıyor ve bir program yürütmüyor!
Peki ya
cat -n somefile.txt
?
Tamam, bunu yapmanın yollarını topladığımızdan,
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//'
veya bazı GNU olmayan sed
name__s için:
cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'