1

一部のファイルで、1行目(および1行目のみ)の2番目の一致の後に(そしてそれを含めて)残りの行を削除するのに助けが必要です。たとえば、パターンがアスタリスクの場合*

入力:

asd*asd*asd*asd*asd*
asdasdasd*asdasdasd*asdasdasd*asdasdasd

期待される出力:

asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd

ありがとう!

4

3 に答える 3

2

これはあなたのために働くかもしれません(GNU sed):

sed '1s/\*[^*]*//2g' file
于 2012-08-29T09:42:07.403 に答える
2

操作を行に制限するには、「アドレス」を使用します。

sed '1s/\([^*]\*[^*]*\).*/\1/'
于 2012-08-29T08:13:44.810 に答える
2

1つのawk解決策:

awk '
    BEGIN { FS = OFS = "*" } 
    FNR == 1 { 
        print $1, $2 
    } 
    FNR > 1 { 
        print 
    }
' infile

その結果、次のようになります。

asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd
于 2012-08-29T08:21:52.250 に答える