linux命令用于在文本文件中的每个字符后引入单个空格

时间:2014-02-22 05:01:56

标签: linux sed

我有一个文本文件,我必须在每个字符后引入单个空格。我正在使用的命令是:

sed 's/./& /g' source.txt>output.txt

但我没有得到输出,输出与输入保持一致。 请帮我解决这个问题。这个命令是否正确?

外部编辑:根据下面的评论,输入文字为:'pustə_pɾemínù_kədéví_kɪse_pyaːɾemɪ'

及其相应的输出是:pustə_pɾemínù_kədéví_kɪse_pyaːɾemɪ

不是在每个字符后引入单个空格,而是用双倍空格替换单个空格(已经在输入中)。

3 个答案:

答案 0 :(得分:1)

你的sed命令对我有用,但字符的重音符号会从字符中移出。

这是一个较长的sed命令,你可以尝试,它也适用于我。

sed 's/\(.\)/\1 /g'

答案 1 :(得分:0)

如果'sed'不起作用,这是'awk'选项

awk 'BEGIN{FS=OFS=""}{for (i=1;i<=NF;i++) {$i=$i " "}}1' source.txt > output.txt

modified from here

编辑:如果你使用的是Mac OSX,'sed'来自BSD而不是GNU。您可以阅读here说明如何添加单个空格,然后进行修改以满足您的需求。

答案 2 :(得分:0)

您的sed命令是正确的,因此在我看来您正在运行某些区域设置问题。

在提示符下键入以下内容并重新运行命令:

LANG="en_US.UTF-8"