使用sed编写shell脚本

使用sed编写shell脚本,shell,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 我真的不知道我需要什么把“替换”部分。有什么建议吗?没什么。。。如下图所示: % echo "/ab1

我想读取标准输入,删除所有“/”,然后将输出写入标准输出。因此,包含以下内容的文件:

/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

我真的不知道我需要什么把“替换”部分。有什么建议吗?

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

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

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

% echo "/ab1/1a6/ 17" | sed 's/\///g'
ab11a6 17
这将删除每行上的所有
/
字符,因此不需要替换部分。您可以使用
/
作为分隔符,并在文本中对其进行转义:
s/\///g
,或者选择不同的标点符号作为分隔符:
s./…g

因此,如果要转换名为
input.txt的文件,并将输出写入
output.txt

sed 's./..g' input.txt > output.txt
# or
sed 's./..g' < input.txt > output.txt
sed's./…g'input.txt>output.txt
#或
sed's./…g'output.txt
这将删除每行上的所有
/
字符,因此不需要替换部分。您可以使用
/
作为分隔符,并在文本中对其进行转义:
s/\///g
,或者选择不同的标点符号作为分隔符:
s./…g

因此,如果要转换名为
input.txt的文件,并将输出写入
output.txt

sed 's./..g' input.txt > output.txt
# or
sed 's./..g' < input.txt > output.txt
sed's./…g'input.txt>output.txt
#或
sed's./…g'output.txt

执行您要求的操作的最简单程序是:

 tr -d '/' 
如果您输入,您将获得所需的输出-无/字符,则不需要
读取
回送
语句

sed的行为与其他显示的相同,默认情况下,tr&sed从stdin读取并写入stdout:

sed 's/\///g'

执行您要求的操作的最简单程序是:

 tr -d '/' 
如果您输入,您将获得所需的输出-无/字符,则不需要
读取
回送
语句

sed的行为与其他显示的相同,默认情况下,tr&sed从stdin读取并写入stdout:

sed 's/\///g'

OP专门为
sed
OP专门为
sed