我需要一些帮助,在某些文件中删除(并包括)第1行(仅第1行)的第二个匹配后的其余部分。例如,如果模式为星号*
:
输入:
asd*asd*asd*asd*asd*
asdasdasd*asdasdasd*asdasdasd*asdasdasd
预期产出:
asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd
谢谢!
答案 0 :(得分:2)
要将操作限制为一行,请使用“地址”:
sed '1s/\([^*]\*[^*]*\).*/\1/'
答案 1 :(得分:2)
一个awk
解决方案:
awk '
BEGIN { FS = OFS = "*" }
FNR == 1 {
print $1, $2
}
FNR > 1 {
print
}
' infile
产量:
asd*asd
asdasdasd*asdasdasd*asdasdasd*asdasdasd
答案 2 :(得分:2)
这可能适合你(GNU sed):
sed '1s/\*[^*]*//2g' file