一部のファイルで、1行目(および1行目のみ)の2番目の一致の後に(そしてそれを含めて)残りの行を削除するのに助けが必要です。たとえば、パターンがアスタリスクの場合*
:
入力:
asd*asd*asd*asd*asd*
asdasdasd*asdasdasd*asdasdasd*asdasdasd
期待される出力:
asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd
ありがとう!
これはあなたのために働くかもしれません(GNU sed):
sed '1s/\*[^*]*//2g' file
操作を行に制限するには、「アドレス」を使用します。
sed '1s/\([^*]\*[^*]*\).*/\1/'
1つのawk
解決策:
awk '
BEGIN { FS = OFS = "*" }
FNR == 1 {
print $1, $2
}
FNR > 1 {
print
}
' infile
その結果、次のようになります。
asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd