Shell-Script

如何使用 shell 命令在每一行中添加行號?

  • March 18, 2021

我的檔案,

PSS-A  (Primary A)
PSS-B  (Primary B)
PSS-C  (Primary C)
PSS-D  (Primary D)
PSS-E  (Primary E)
PSS-F  (Primary F)
PSS-G  (Primary G)
PSS-H  (Primary H)
PSS-I  (Primary I)
SPARE  (SPARE)

輸出文件,

1> PSS-A  (Primary A)
2> PSS-B  (Primary B)
3> PSS-C  (Primary C)
4> PSS-D  (Primary D)
5> PSS-E  (Primary E)
6> PSS-F  (Primary F)
7> PSS-G  (Primary G)
8> PSS-H  (Primary H)
9> PSS-I  (Primary I)
10> SPARE  (SPARE)

如果您想要您指定的相同格式

awk '{print NR  "> " $s}' inputfile > outputfile

否則,儘管不是標準的,但該命令的大多數實現cat都可以為您列印行號(至少在 GNU、busybox、Solaris 和 FreeBSD 實現中,數字填充到寬度 6 併後跟 TAB)。

cat -n inputfile > outputfile

或者,您可以將grep -n(數字後跟:) 與^匹配任何行的正則表達式一起使用:

grep -n '^' inputfile > outputfile

這項工作的正確工具是nl

nl -w2 -s'> ' file

您可能希望w根據文件中的總行數調整 idth 選項(如果您希望數字很好地對齊)。

輸出:

1> PSS-A  (Primary A)
2> PSS-B  (Primary B)
3> PSS-C  (Primary C)
4> PSS-D  (Primary D)
5> PSS-E  (Primary E)
6> PSS-F  (Primary F)
7> PSS-G  (Primary G)
8> PSS-H  (Primary H)
9> PSS-I  (Primary I)
10> SPARE  (SPARE)

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