使用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