我做了这个脚本:
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.*//'
成一个命令?
与-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.*//'
您可以将这些命令放在一个名为 sedscr 的文件中,例如,每行一个:
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
然后调用:
xrandr | grep '*' | sed -f sedscr
我更喜欢这种方法,以防我将来想添加更多命令。
您可以简单地将所有sed
命令视为脚本并;
在命令之间添加一个:
xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g ; s/ //g ; s/x.*//'
使用换行符:
echo coobas | sed 's:c:f:
s:s:r:'
没有sed
但只是grep
:
$ xrandr | grep -oP '^\s+\K\d+(?=.*?\*)'
1440
或使用perl:
$ xrandr | perl -lne 'print $1 if /^\s+(\d+)(?=.*?\*)/'
1440
要考虑的另一件事是制作一个 sed 配置文件(称为config.sed)列出所有替换规则。例如:
1,/^END/{
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
}
然后运行
sed -f config.sed filein.txt > fileout.txt