如何在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
在 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