如何删除匹配模式



如何从文件中删除匹配模式?

每次出现图案[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

相关内容

  • 没有找到相关文章

最新更新