說我有輸出的幾行看起來像這樣:AWK:斬根據正則表達式的東西斷行首
blah <foo> I want this
baz < nom> I want this too
bit <@hi> And this...
如何使用AWK之前砍掉一切,包括,第一「>」每行上的字符?
說我有輸出的幾行看起來像這樣:AWK:斬根據正則表達式的東西斷行首
blah <foo> I want this
baz < nom> I want this too
bit <@hi> And this...
如何使用AWK之前砍掉一切,包括,第一「>」每行上的字符?
使用awk的,你可以這樣做:
awk '{sub(/^[^.]*>/, "");} 1' file
I want this
I want this too
And this...
或者使用SED:
sed 's/^[^.]*>//' file
I want this
I want this too
And this...
如果你只有>
性格,一旦你可以做一個簡單sed
替代:
sed 's/.*>//' file
如果可以有很多上面的貪婪(*
)會消耗一切直到最後>
字符。在這種情況下,你最好這樣做:
sed 's/[^>]*>//' file
這可能會做(如果你有一個>
)
awk -F\> '{print $2}' file
I want this
I want this too
And this...
工作正常!輝煌。 – felamaslen 2014-09-02 18:48:48
試試這個:
awk -F">" '{print $1">"}' filename
Can there there can在一行上多於一個'>'? – 2014-09-02 23:55:49
是的,可以。按照jaypal的回答,我最終使用了sed。 – felamaslen 2014-09-03 01:37:06
一個很好的選擇我會用'cut'自己,但是jaypals second sed也不錯。我很好奇 - 爲什麼你特別要求awk解決方案(然後接受sed答案)? – 2014-09-03 15:14:03