我想从标准输入读取,删除所有'/',并将输出写入标准输出。因此,文件包含:使用sed的shell脚本
/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的shell脚本
/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
没什么......如下图所示:
% echo "/ab1/1a6/ 17" | sed 's/\///g'
ab11a6 17
做你问什么,最简单的方案是:
tr -d '/'
如果您输入,你会得到你想要的输出 - 无/字符你不需要一个read
或echo
声明
的sed的行为同其他人已经表明,TR &使用sed从标准输入读取和写入默认到stdout:
sed 's/\///g'
OP特别要求'sed' – hd1 2013-03-20 04:17:53