Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix tr-Can';不在逗号后创建空格吗?_Unix_Tr - Fatal编程技术网

Unix tr-Can';不在逗号后创建空格吗?

Unix tr-Can';不在逗号后创建空格吗?,unix,tr,Unix,Tr,我现在在用电话 tr '\n' ', ' < test.txt 变成 test1 ,test2 ,test3 , 但是我需要在逗号后面加空格。tr似乎根本无法识别逗号后面的任何内容。tr进行单字母到单字母的转换。对于多字符替换,您需要使用不同的工具,如sed、awk或Perl 特别是,如果你读了。您将看到tr的第二个参数实际上是一个集合,而不是一个多字符字符串,并且由于tr的第一个参数只是一个字符,因此第二个参数的第二个字符将被忽略。具体而言,手册页中的这段引用与以下内容相关: SET

我现在在用电话

tr '\n' ', ' < test.txt
变成

test1 ,test2 ,test3 ,

但是我需要在逗号后面加空格。tr似乎根本无法识别逗号后面的任何内容。

tr
进行单字母到单字母的转换。对于多字符替换,您需要使用不同的工具,如sed、awk或Perl

特别是,如果你读了。您将看到
tr
的第二个参数实际上是一个集合,而不是一个多字符字符串,并且由于
tr
的第一个参数只是一个字符,因此第二个参数的第二个字符将被忽略。具体而言,手册页中的这段引用与以下内容相关:

SET2的多余字符被忽略

您之所以看到逗号前的空格,可能是因为行后面有空格

下面是一个基于Perl的解决方案:

perl -p -e 's/\n/, /' test.txt

只是好奇,如果你做了,x,它会忽略x吗?
perl -p -e 's/\n/, /' test.txt