我做了這個腳本:如何結合sed'句子'?
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.*//'
成一個單一的命令?
我做了這個腳本:如何結合sed'句子'?
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.*//'
不錯,像魅力一樣工作。 – user2079266 2013-02-27 23:31:02
你可以簡單地考慮所有sed
命令,腳本,並添加;
命令之間:
xrandr | grep '*' | sed 's/\S*\(*+\)\S*//g ; s/ //g ; s/x.*//'
這個工作也是。 Thnak你。 – user2079266 2013-02-27 23:31:24
你可以把在文件中的命令叫sedscr例如,每行一個這樣:
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
然後調用:
xrandr | grep '*' | sed -f sedscr
我喜歡這種方法,以防萬一我想補充的多個命令未來。
+1我在同一時間思考相同 – amphibient 2013-02-27 23:35:50
隨着換行符:
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配置文件(打電話給我t config.sed)列出所有替換規則。例如: -
1,/^END/{
s/x.*//
s/ //g
s/\S*\(*+\)\S*//g
}
,然後運行
sed -f config.sed filein.txt > fileout.txt
你有什麼問題嗎? – amphibient 2013-02-27 23:25:04
我正在運行sed三來完成這項工作。我的問題是:如何只使用一個sed來做同樣的事情。 – user2079266 2013-02-27 23:27:33
你有(至少)4個不同的答案,每個答案都是準確的,每個答案都提供了一種替代方法來完成同樣的工作。讓沒有人說你的選擇是有限的。 William Pursell的回答可能應該是'勝利',因爲他指出'grep'是不必要的。 – 2013-02-27 23:34:26