假设我有这个字符串:
Your name is\nBobby\tBlahck\r\r
如何删除字符"\n,\t,\r“。字符串看起来是这样的,它不包含制表符或新行。他们只是个角色。
当我尝试
echo "Your name is\nBobby\tBlahck\r\r" | tr -d '\t'
tr假设我试图删除制表符,所以它不工作,并且打印相同的字符串。关于如何去除它们有什么想法吗?我对sed也有同样的问题。
谢谢
发布于 2015-06-10 12:46:46
$ echo "Your name is\nBobby\tBlahck\r\r" | sed -E 's,\\t|\\r|\\n,,g'
Your name isBobbyBlahck
或
$ echo "Your name is\nBobby\tBlahck\r\r" | sed -e 's,\\[trn],,g'
Your name isBobbyBlahck
-E
在OS上,否则用-r
替换它。
发布于 2015-06-10 12:45:17
这是因为字符串中没有任何制表符。它在t
后面有一个反斜杠,但没有选项卡:
$ echo "Your name is\nBobby\tBlahck\r\r" | tr -d '\t'
Your name is\nBobby\tBlahck\r\r
此字符串中有一个选项卡,tr
将其移除:
$ echo $'Your name is\nBobby\tBlahck\r\r'
Your name is
Bobby Blahck
$ echo $'Your name is\nBobby\tBlahck\r\r' | tr -d '\t'
Your name is
BobbyBlahck
如果您想要bash字符串中的特殊字符,请使用‘$’.‘来创造它们。
发布于 2015-06-10 12:48:10
使用一个字符组检查“\”后面的内容:
echo "Your name is\nBobby\tBlahck\r\r" | sed -r 's/\\[nrt]/ /g'
https://stackoverflow.com/questions/30766838
复制相似问题