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

时间:2015-01-20 23:56:03

标签: bash sed brackets square-bracket

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

我正在使用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 个答案:

答案 0 :(得分:3)

使用awk

awk '{print "["$0"]"}' file_name.txt

答案 1 :(得分:1)

您的命令没问题,除非跑两次,否则不应添加2 [。在这种情况下,也可以在不必要的情况下对整个模式&进行分组

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

也许,尝试用你自己的单引号,可以用shell中的其他东西解释双重