如何从文件中删除匹配模式?
每次出现图案[my_id=
时,应将其移除,无需更换。
例如,字段[my_id=AB_123456789.1]
应AB_123456789.1
。
我已经试过了,没有结果
sed '/[my_id=/d'
awk '$(NF-1) /^[protein_id=/d'
也可以从最后一个字段中删除前 n 个字符,但 1 个字段 ($(NF-1)) 作为替代方案?
感谢您的任何帮助
您可以使用:
sed 's/[my_id=([^]]*)]/1/g' file
-
[my_id=([^]]*)]
查找此内容并替换为内部的文本 (1
)。 -
[my_id=([^]]*)]
表示[my_id=
加上不包含]
的字符串,该字符串被(...)
语法捕获,要用1
打印回来。
测试
$ cat a
hello [my_id=AB_123456789.1] bye
adf aa [my_id=AB_123456789.1] bbb
$ sed 's/[my_id=([^]]*)]/1/g' a
hello AB_123456789.1 bye
adf aa AB_123456789.1 bbb
你可以在awk中尝试这样的事情
$ cat <<test | awk 'gsub(/[my_id=|]/,"")'
hello [my_id=AB_123456789.1] bye
adf aa [my_id=AB_123456789.1] bbb
test
hello AB_123456789.1 bye
adf aa AB_123456789.1 bbb