awk:根据正则表达式从一行开始删除东西

时间:2014-09-02 18:41:10

标签: regex awk chop

假设我有几行输出,如下所示:

 blah <foo> I want this
 baz < nom> I want this too
 bit <@hi>   And this...

如何使用awk切断所有内容,包括第一个“&gt;”每一行的角色?

5 个答案:

答案 0 :(得分:2)

如果您只有>字符,则可以进行简单的sed替换:

sed 's/.*>//' file

如果可能有许多上述贪婪(*)将消耗最后一个>字符的所有内容。在这种情况下,你最好这样做:

sed 's/[^>]*>//' file

答案 1 :(得分:2)

这可能会(如果你有一个>

awk -F\> '{print $2}' file
 I want this
 I want this too
   And this...

答案 2 :(得分:2)

让我们不要忘记削减,这就是它的发明:

cut -d\> -f2- file

答案 3 :(得分:0)

使用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...

答案 4 :(得分:0)

试试这个:

awk -F">"  '{print $1">"}' filename