0

我是初学者..我想使用Linux shell制作以下文件

1 2 2
2 3 4
4 5 2
4 2 1
....

进入

1,2,2
2,3,4
4,5,2
4,2,1

非常感谢!

4

2 回答 2

2

您是否正在寻找这样的东西:-

sed -e "s/ /,/g" < a.txt

或者可能像这样更容易:

tr ' ' ',' <input >output

或者在 Vim 中你可以使用正则表达式:

s/ /,/g
于 2013-10-04T16:33:12.523 回答
1

问题是“逐行”。在bash :

while read line; do echo $line | sed 's/ /,/g'; done < file

它将file逐行读入line,打印(echo)每一行并用管道(|sed将空格变为逗号。如果您需要将其存储在文件中,您可以> newfile在最后添加(但> file不会工作)。

但是,如果您除了更改文件中的字符之外不需要其他任何东西,那么一次处理整个文件会更容易并且可能更快:

sed -i 's/ /,/g' file

(选项-i用于直接修改文件,而不是打印对 的修改stdout)。

阅读更多关于sed理解它的语法,你最终会需要它。

于 2013-10-04T16:42:15.663 回答