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

时间:2019-01-02 14:20:30

标签: shell file unix line

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

此命令仅显示行号     猫-n txt.file

此:

Tony
Alpha
Bravo

对此:

/1/ Tony
/2/ Alpha
/3/ Bravo

5 个答案:

答案 0 :(得分:1)

awk '{print "/" FNR "/ " $0}' file

答案 1 :(得分:1)

awk is probably the cleanest option,但您也可以使用nl命令:

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

(行号两边的斜线-家庭作业问题?-使之复杂。sed命令添加斜线。您可能需要根据Unix版本进行略微的编辑。我在Mac上这样做。)< / p>

答案 2 :(得分:1)

sed解决方案是:

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

由于|命令的局限性,这里需要一个管道=

答案 3 :(得分:1)

要投入bash解决方案(速度慢):

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

或者是一种奇怪但又“创造性”的方式(令人惊讶的是它相对较快):

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

答案 4 :(得分:0)

Perl解决方案

>>> num = float('1.4300')       # changes input into float (removes trailing 0s automatically)
>>> round(abs(num)%1, 2) == .43 # checks if it ends with .43 with 2 decimal points
True