我想从标准输入读取,删除所有“/”,并将输出写入到标准输出。 因此,文件包含:
/ab1/1a6/ 17
/a/b/1
将有输出:
ab11a6 17
ab1
我想应该是这样的:
read input
sed -r 's/\/[^\/]*\/[^\/]*\/.*/"I not sure what do I need to put in here"/g'
echo $input
我真的不知道我需要什么,把“替换”一节。 什么建议吗?
我想从标准输入读取,删除所有“/”,并将输出写入到标准输出。 因此,文件包含:
/ab1/1a6/ 17
/a/b/1
将有输出:
ab11a6 17
ab1
我想应该是这样的:
read input
sed -r 's/\/[^\/]*\/[^\/]*\/.*/"I not sure what do I need to put in here"/g'
echo $input
我真的不知道我需要什么,把“替换”一节。 什么建议吗?
sed 's./..g'
这将删除所有/
字符在每一行,所以你不需要更换部分。 您可以使用/
作为分隔符,并在文本逃避它: s/\///g
或选择不同的标点符号作为分隔符: s./..g
所以,如果你想改变一个文件名为input.txt
并写入输出output.txt
:
sed 's./..g' input.txt > output.txt
# or
sed 's./..g' < input.txt > output.txt
做你问什么,最简单的方案是:
tr -d '/'
如果你输入你会得到你想要的输出-不含字符/你并不需要read
或echo
声明
SED的行为一样其他人已经表明,TR和从标准输入Sed则读取和写入默认到stdout:
sed 's/\///g'
没什么......如下图所示:
% echo "/ab1/1a6/ 17" | sed 's/\///g'
ab11a6 17