it-swarm.asia

Bagaimana saya bisa menambahkan nomor baris dan tab ke setiap baris file teks?

Bagaimana saya bisa menambahkan nomor baris dan tab ke awal setiap baris file teks?

44
Richard Hoskins
awk '{printf "%d\t%s\n", NR, $0}' < filename
50
pgs

Perintah nl harus melakukan ini, tetapi itu menambah ruang sebelum nomor baris juga. Itu bagian dari Linux coreutils.

nl lines.txt
 1  $bkWTN
 2  $cV8$.
52
ACoolie
sed = test.txt | sed 'N;s/\n/\t/'

Perintah "sed =" akan mencetak nomor baris diikuti dengan carriage return dan kemudian baris berikutnya.

Ekspresi "N; s/\ n/\ t /" akan mengambil setiap baris, dapatkan baris berikutnya (yaitu nomor baris dan baris), dan ganti carriage return dengan tab.

10
Callum
cat -n <yourfile> | Perl -pe "s/^\s*(\d+)\s+/\1\t/"

cat -and menambahkan nomor baris sebagai "123 linecontents" dan regex memodifikasinya menjadi "linenumberTABlinecents"

4
raspi
Perl -pe "s/^/$.\t$_/" file.txt

atau

Perl -ne "print qq($.\t$_)" file.txt
3
itsadok

Oke, inilah solusi bash satu baris:

$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=

Pengaturan IFS pertama memberi tahu bash untuk membaca baris penuh pada satu waktu. Baris kedua me-reset IFS ke default.

Sebagai bonus tambahan, ini berjalan sepenuhnya di Shell Anda dan tidak menjalankan program!

2
P. Heffner

Bagaimana tentang

cat -n somefile.txt

?

2
innaM

Oke, karena kami sedang mengumpulkan cara untuk melakukan ini,

 grep -n . file.txt | sed 's/\(^[0-9]*\):/\1    /g'
 # this is a tab with Ctrl-V + Tab  =====>  ---- 
1
nik
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'

atau untuk beberapa seds non-GNU:

cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'
1
chaos