如何在txt文件中添加“/1/”作为行号?

How to add "/1/" as a line number in a txt file?

在 Unix 中,我想在 .txt 文件中的行号前后添加斜线

这个命令只显示行号 cat -n txt.file

这个:

Tony
Alpha
Bravo

对此:

/1/ Tony
/2/ Alpha
/3/ Bravo
awk '{print "/" FNR "/ " [=10=]}' file

,但也可以使用nl命令:

 nl -a -n ln txt.file | sed 's/^\([0-9]*\) */\/\//'

(行号周围的斜杠——家庭作业问题?——使它复杂化。sed 命令添加了斜杠。您可能需要根据您的 Unix 版本稍微编辑它。我在 Mac.)

一个sed解决方案是:

   sed '=' file | sed 'N;s_^_/_;s_\n_/ _'

由于 = 命令的限制,这里需要管道 |

要投入 bash 解决方案(如预期的那样慢):

while IFS= read -r line; do printf '/%d/ %s\n' "$((++i))" "$line"; done < file.txt

或者奇怪但是"creative"的方式(意外的是比较快):

paste -d" " <(seq -f "/%g/" 1 $(wc -l < file.txt)) file.txt

Perl 解决方案

$ cat  add_line_num.txt
Tony
Alpha
Bravo

$ perl -pe ' $_="/$./ $_" ' add_line_num.txt
/1/ Tony
/2/ Alpha
/3/ Bravo