如何使用Linux逐行读取文件并将所有空格替换为','?

时间:2013-10-04 16:30:16

标签: linux shell file-io

我是初学者..我想使用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

非常感谢!

2 个答案:

答案 0 :(得分:2)

你在寻找这样的东西: -

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

或者可能更容易这样:

tr ' ' ',' <input >output

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

s/ /,/g

答案 1 :(得分:1)

问题是“逐行”问。在bash

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

它将file逐行显示为line,打印(echo)每一行,并将其(|)显示为sed,这将改变空格成逗号。如果您需要将> newfile存储在文件中,则可以在末尾添加> file(<{1}}无法使用)。

但如果你不需要更改文件中的字符,那么立即处理整个文件会更容易,也可能更快:

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

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

详细了解sed以了解其语法,最终您将需要它。