代码之家  ›  专栏  ›  技术社区  ›  Sanathana

使用bash在文件的每行中添加方括号

  •  4
  • Sanathana  · 技术社区  · 10 年前

    我想在文件的每一行加上方括号。

    我在使用 sed -i "s/\(.*\)/[\1]/" file_name.txt 命令,但我看到它插入了2倍方括号,我的输出(仅第一行,每一行都一样)如下

    [[1,1,0,0,0,0,1,0,24,3,0,0,0,0,86,149,149,14,0,0,0,0,32,149,46,16,0,0,1,13,3,33,65,66,0,0,0,0,0,2,149,140,6,0,0,2,62,148,88,24,26,2,0,14,116,148,30,15,1,0,0,1,5,30,56,18,0,0,0,0,0,4,149,46,40,14,0,0,1,34,31,46,149,31,0,2,9,12,1,7,8,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,12,2,0,0,0,0,0,0,0,0,0,0,0,0]]
    

    如何使用sed为每行仅插入一个方形括号?请帮忙。提前感谢!

    2 回复  |  直到 6 年前
        1
  •  5
  •   Amit Saurabh Jain    10 年前

    使用 awk :

    awk '{print "["$0"]"}' file_name.txt
    
        2
  •  1
  •   NeronLeVelu    10 年前

    您的命令很好,不应添加2 [ 除非跑两次。此外,在这种情况下,不需要分组,采用整个模式 & 是令人厌恶的

    sed -i 's/.*/[&]/' file_name.txt 
    

    也许,试着用你自己的单引号,双引号可能会被外壳中的其他东西解释