[英]how to match lines without some strings in sed
我試圖打印出該文件夾下每個文件的第一行(以>開頭,因為文件是fasta文件),並使用sed提取出沒有質粒和片段的那些行。
我做了ls * | xargs -I one sed -n -e '/^>.*[^fragment|plasmid].*/p' one > outfile
ls * | xargs -I one sed -n -e '/^>.*[^fragment|plasmid].*/p' one > outfile
但它不起作用? 我應該如何修改?
我是否認為您只想從每個文件中打印第一行(如果該行不包含片段或質粒)? 那只是:
awk 'FNR==1 && !/fragment|plasmid/' *
如果這不是您想要的,請使用一些代表性的示例輸入和預期輸出來更新您的問題。
這對您有用嗎?
head -q -n 1 * | egrep -v "^>.*(fragment|plasmid).*"
如果我將您的要求讀為以>開頭的打印行,除非它們包含片段或質粒,那么我認為這將為您完成:
sed -ne '/^>/{/fragment/;b;/plasmid/b;p;}' one > outfile
它會忽略所有不以>開頭的行,如果找到片段或質粒,它將跳至腳本末尾並轉到下一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.