it-swarm-vi.tech

Làm cách nào tôi có thể thêm số dòng và tab cho mỗi dòng của tệp văn bản?

Làm cách nào tôi có thể nối số dòng và tab vào đầu mỗi dòng của tệp văn bản?

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

Lệnh nl nên làm điều này, nhưng nó cũng thêm không gian trước số dòng. Nó là một phần của lõi Linux.

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

Lệnh "sed =" sẽ in số dòng theo sau là dòng hoàn trả và sau đó là dòng tiếp theo.

Biểu thức "N; s/\ n/\ t /" sẽ lấy từng dòng, lấy dòng tiếp theo (tức là số dòng và dòng) và thay thế trả về vận chuyển bằng một tab.

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

cat -n thêm vải lanh là "123 linecontents" và regrec đó sửa đổi nó thành "linenumberTABlinecontents"

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

hoặc là

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

OK, đây là một giải pháp bash một dòng:

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

Cài đặt IFS đầu tiên cho bash đọc một dòng đầy đủ tại một thời điểm. Dòng thứ hai đặt lại IFS về mặc định.

Là một phần thưởng bổ sung, nó chạy hoàn toàn trong Shell của bạn và không thực hiện chương trình!

2
P. Heffner

Làm thế nào về

cat -n somefile.txt

?

2
innaM

Ok, vì chúng tôi đang thu thập các cách để làm điều này,

 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//'

hoặc đối với một số seds không phải GNU:

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