私はこのスクリプトを作成しました:
xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g'| sed 's/ //g' | sed 's/x.*//'
sed
3つのコマンドを組み合わせるにはどうすればよいですか。
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というファイルに入れることができます。たとえば、1行に1つずつです。
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
考慮すべきもう1つのことは、すべての置換ルールをリストするsed構成ファイル( config.sedと呼びます)を作成することです。例えば:
1,/^END/{
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
}
その後、実行します
sed -f config.sed filein.txt > fileout.txt