首页 > 解决方案 > 带有 sed 的 for 循环删除包含字母列表的行

问题描述

我有一个文件 cleansec_jobarray.sh

readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1F -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1F -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1G -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1G -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1H -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1H -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1I -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1I -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1J -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1J -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1L -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1L -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1M -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1M -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1N -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1N -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1O -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1O -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4
readCleaner -fastqdir /users/mfariasv/data/mfariasv/secrun/RSFV1P -outdir /users/mfariasv/data/mfariasv/secrun_clean/RSFV1P -contam /users/mfariasv/data/mfariasv/contams/contams.fa -trimjar /users/mfariasv/data/mfariasv/install/Trimmomatic-0.36/trimmomatic-0.36.jar -pe 1 -nthreads 4

我想删除包含 RSFV1F、RSFV1M、RSFV1O 的行

我知道可以使用 包含多个字符串之一的删除行https://unix.stackexchange.com/questions/400860/loop-sed-to-delete-line-with-strings-provided-in-a-list来完成-of-strings-from-a-text-f

但我想用 sed 循环

我试过了

for f in F M O; do sed "/RSFV1$f/d" cleansec_jobarray.sh; done

但是没有机会

标签: sed

解决方案


这可能对您有用(GNU sed):

sed '/RSFV1[FMO]/d' file

或者:

grep -v 'RSFV1[FMO]' file

推荐阅读