我想从标准输入读取,删除所有'/',并将输出写入标准输出。因此,一个文件包含:
/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
orecho
语句
sed 的行为与其他人显示的相同,默认情况下, tr & sed 从标准输入读取并写入标准输出:
sed 's/\///g'
没什么……如下图:
% echo "/ab1/1a6/ 17" | sed 's/\///g'
ab11a6 17