使用SED shell脚本(shell scripting using sed)

2019-10-17 20:49发布

我想从标准输入读取,删除所有“/”,并将输出写入到标准输出。 因此,文件包含:

/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

我真的不知道我需要什么,把“替换”一节。 什么建议吗?

Answer 1:

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


Answer 2:

做你问什么,最简单的方案是:

 tr -d '/' 

如果你输入你会得到你想要的输出-不含字符/你并不需要readecho声明

SED的行为一样其他人已经表明,TR和从标准输入Sed则读取和写入默认到stdout:

sed 's/\///g'


Answer 3:

没什么......如下图所示:

% echo "/ab1/1a6/ 17" | sed 's/\///g'
ab11a6 17


文章来源: shell scripting using sed
标签: shell