0

私はこのスクリプトを作成しました:

xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g'| sed 's/ //g' | sed 's/x.*//'

sed3つのコマンドを組み合わせるにはどうすればよいですか。

  1. sed 's/\S*\(*+\)\S*//g'
  2. sed 's/ //g'
  3. sed 's/x.*//'

単一のコマンドに?

4

6 に答える 6

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.*//'
于 2013-02-27T23:26:43.227 に答える
3

これらのコマンドをsedscrというファイルに入れることができます。たとえば、1行に1つずつです。

s/x.*//
s/ //g
s/\S*\(*+\)\S*//g

そして、電話してください:

xrandr | grep '*' | sed -f sedscr

将来コマンドを追加したい場合に備えて、この方法を使用します。

于 2013-02-27T23:27:17.710 に答える
1

すべてのsedコマンドをスクリプトと見なして、コマンド;間に追加するだけです。

xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g ; s/ //g ; s/x.*//'
于 2013-02-27T23:26:12.953 に答える
1

改行あり

echo coobas | sed 's:c:f:
s:s:r:'
于 2013-02-27T23:28:27.177 に答える
0

なしsedgrep

$ xrandr | grep -oP '^\s+\K\d+(?=.*?\*)'
1440

またはで:

$ xrandr | perl -lne 'print $1 if /^\s+(\d+)(?=.*?\*)/'
1440
于 2013-02-27T23:31:28.000 に答える
0

考慮すべきもう1つのことは、すべての置換ルールをリストするsed構成ファイル( config.sedと呼びます)を作成することです。例えば:

1,/^END/{
   s/x.*//
   s/ //g
   s/\S*\(*+\)\S*//g
}

その後、実行します

sed -f config.sed filein.txt > fileout.txt
于 2013-02-27T23:33:02.687 に答える