在shell中添加字符到文件的结尾和开头

Ast*_*rid 1 csv bash shell awk sed

我有一堆大型矩阵需要重新格式化,理想情况下使用shell.

假设我将这些内容存储在example.csv中:

1,2,3
2,3,4
5,6,7
Run Code Online (Sandbox Code Playgroud)

然后我做

cat example.csv | tr ',' ' ' | awk '{print "["$0"]"}'
Run Code Online (Sandbox Code Playgroud)

要得到

[1 2 3]
[2 3 4]
[5 6 7] 
Run Code Online (Sandbox Code Playgroud)

但我需要我的最终格式看起来如此

[[1 2 3]
 [2 3 4]
 [5 6 7]]
Run Code Online (Sandbox Code Playgroud)

那么如何使用sed,awk或类似的shell来完成这个呢?即前面[是示例的开头并附]加到示例的最后一行?

想象一下,我的.csv矩阵有几千列和行.

nu1*_*73R 5

以防您对sed解决方案感兴趣

$ sed '1 s/^/[/; s/.*/[&]/; $ s/$/]/; s/,/ /g' input
[[1 2 3]
[2 3 4]
[5 6 7]]
Run Code Online (Sandbox Code Playgroud)