我制作了这个剧本:
xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g'| sed 's/ //g' | sed 's/x.*//'
如何组合三个sed
命令:
sed 's/\S*\(*+\)\S*//g'
sed 's/ //g'
sed 's/x.*//'
成一个命令?
答案 0 :(得分:3)
使用-e
:
xrandr | grep '*' | sed -e 's/\S*\(*+\)\S*//g' -e 's/ //g' -e 's/x.*//'
请注意,grep
不是必需的:
xrandr | sed -e '/\*/!d' -e 's/\S*\(*+\)\S*//g' -e 's/ //g' -e 's/x.*//'
答案 1 :(得分:3)
您可以将这些命令放在名为sedscr的文件中,例如每行一个:
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
然后致电:
xrandr | grep '*' | sed -f sedscr
我更喜欢这种方法,以防我以后想要添加更多命令。
答案 2 :(得分:1)
您可以简单地将所有sed
命令视为脚本,并在命令之间添加;
:
xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g ; s/ //g ; s/x.*//'
答案 3 :(得分:1)
使用换行符:
echo coobas | sed 's:c:f:
s:s:r:'
答案 4 :(得分:0)
没有sed
,只有grep
:
$ xrandr | grep -oP '^\s+\K\d+(?=.*?\*)'
1440
或perl:
$ xrandr | perl -lne 'print $1 if /^\s+(\d+)(?=.*?\*)/'
1440
答案 5 :(得分:0)
要考虑的另一件事是制作一个列出所有替换规则的sed配置文件(称之为 config.sed )。 E.g:
1,/^END/{
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
}
然后运行
sed -f config.sed filein.txt > fileout.txt