Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Bash tr和xargs不删除空格字符_Bash_Ubuntu_Tr - Fatal编程技术网

Bash tr和xargs不删除空格字符

Bash tr和xargs不删除空格字符,bash,ubuntu,tr,Bash,Ubuntu,Tr,我试图使用此命令从字符串中删除所有和+字符。但是命令tr正在其位置插入空格字符。我还想删除所有空格 在 预期产量 ModelName.123456798123465. 使用的命令 String | tr '<>+,' ' ' String | tr'+,'' 我这里缺少什么?您可以使用sed而不是下面的tr $ echo '<ModelName>.<123456798123465>.' | sed 's/[+<>]//g' ModelName

我试图使用此命令从字符串中删除所有
+
字符。但是命令tr正在其位置插入空格
字符。我还想删除所有空格

预期产量

ModelName.123456798123465.
使用的命令

String | tr '<>+,' ' '
String | tr'+,''

我这里缺少什么?

您可以使用sed而不是下面的
tr

$ echo '<ModelName>.<123456798123465>.' | sed 's/[+<>]//g'
ModelName.123456798123465.
$echo'..'| sed's/[+]//g'
ModelName.123456798123465。

字符类
[+]
匹配所有
+
符号。用空字符串替换匹配的字符将得到所需的输出。

如果要删除特定字符,请使用
tr-d SET
tr SET'
表示将
SET
中的所有字符转换为空格字符

$ echo '<ModelName>.<123456798123465>.' | tr '<>+' ' '
 ModelName . 123456798123465 .
$ echo '<ModelName>.<123456798123465>.' | tr -d '<>+'
ModelName.123456798123465.
$echo'..'|tr'+''
型号名称。123456798123465 .
$echo'..'| tr-d'+'
ModelName.123456798123465。

您需要的是
tr
命令的
-d
选项

$ echo "<ModelName>.<123456798123465>." | tr -d '<>+,'
ModelName.123456798123465.

你的预期结果是什么?编辑了问题。。谢谢
$ echo '<ModelName>.<123456798123465>.' | tr '<>+' ' '
 ModelName . 123456798123465 .
$ echo '<ModelName>.<123456798123465>.' | tr -d '<>+'
ModelName.123456798123465.
$ echo "<ModelName>.<123456798123465>." | tr -d '<>+,'
ModelName.123456798123465.
 -d, --delete
              delete characters in SET1, do not translate