Alb*_*gni 79
tr ' ' ',' <input >output
Run Code Online (Sandbox Code Playgroud)
用逗号替换每个空格,如果需要,可以用-s标志(压缩重复)进行传递,用一次出现的替换SET1(空格)中列出的重复字符的每个输入序列.字符.
在替换标签之后使用挤压重复:
tr -s '\t' <input | tr '\t' ',' >output
Run Code Online (Sandbox Code Playgroud)
dav*_*ave 27
尝试类似的东西:
sed 's/[:space:]+/,/g' orig.txt > modified.txt
Run Code Online (Sandbox Code Playgroud)
字符类[:space:]将匹配所有空格(空格,制表符等).如果您只想替换单个字符,例如.只是空间,只使用它.
编辑:实际上[:space:]包括回车,所以这可能不会做你想要的.以下内容将替换制表符和空格.
sed 's/[:blank:]+/,/g' orig.txt > modified.txt
Run Code Online (Sandbox Code Playgroud)
一如既往
sed 's/[\t ]+/,/g' orig.txt > modified.txt
Run Code Online (Sandbox Code Playgroud)
在所有这些中,您需要注意文件中由空格分隔的项目不包含您想要保留的空白,例如.两个字.
gho*_*g74 26
没有看你的输入文件,只有一个猜测
awk '{$1=$1}1' OFS=","
Run Code Online (Sandbox Code Playgroud)
重定向到另一个文件并根据需要重命名
Pas*_*TIN 10
这样的事情怎么样:
cat texte.txt | sed -e 's/\s/,/g' > texte-new.txt
Run Code Online (Sandbox Code Playgroud)
(是的,有一些无用的捕捉和管道;也可以使用<直接从文件中读取,我想 - 首先使用cat输出文件的内容,然后才添加sed到我的命令行)
编辑:正如@ ghostdog74在评论中指出的那样,绝对不需要猫/管; 你可以给sed提供文件的名称:
sed -e 's/\s/,/g' texte.txt > texte-new.txt
Run Code Online (Sandbox Code Playgroud)
如果"texte.txt"是这样的:
$ cat texte.txt
this is a text
in which I want to replace
spaces by commas
Run Code Online (Sandbox Code Playgroud)
你会得到一个"texte-new.txt",它看起来像这样:
$ cat texte-new.txt
this,is,a,text
in,which,I,want,to,replace
spaces,by,commas
Run Code Online (Sandbox Code Playgroud)
我不会只用新的替换旧文件(可以用sed -i完成,如果我没记错的话;并且正如@ ghostdog74所说,这个人会接受动态创建备份):保持可能是明智的,作为一种安全措施(即使它意味着必须将其重命名为"texte-backup.txt")
这个命令应该工作:
sed "s/\s/,/g" < infile.txt > outfile.txt
Run Code Online (Sandbox Code Playgroud)
请注意,您必须将输出重定向到新文件.输入文件未就地更改.
sed可以这样做:
sed 's/[\t ]/,/g' input.file
Run Code Online (Sandbox Code Playgroud)
那将发送到控制台,
sed -i 's/[\t ]/,/g' input.file
Run Code Online (Sandbox Code Playgroud)
将就地编辑文件