Bash

將 less 實用程序的輸出重定向到文件

  • January 26, 2018

這是我所做的

less -N file1 > file2

我想要的是使用 line-numbers 選項將 file1 寫入 file2 。

但我失敗了。

有什麼建議嗎?為什麼我沒能做到?

謝謝。

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

seqpaste

seq $(wc -l file1 | cut -d' ' -f1) | paste - file1 >file2

甚至是一個普通的 shell 腳本:

count=0
while IFS= read -r line; do
   let count++
   printf '%d\t%s\n' $count "$line"
done <file1 >file2

但是less是錯誤的工具。:)

引用自:https://unix.stackexchange.com/questions/217036