从字符串中删除两个子字符串
发布时间:2020-12-15 21:15:59 所属栏目:安全 来源:网络整理
导读:我有一个像这样的文件列表: wgEncodeCaltechRnaSeqGm12878R1x75dFastqRep1.fastq.trim.tags.samwgEncodeCaltechRnaSeqGm12878R1x75dFastqRep2.fastq.trim.tags.samwgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep1.fastq.trim00.tags.samwgEncodeCshlLong
我有一个像这样的文件列表:
wgEncodeCaltechRnaSeqGm12878R1x75dFastqRep1.fastq.trim.tags.sam wgEncodeCaltechRnaSeqGm12878R1x75dFastqRep2.fastq.trim.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep1.fastq.trim00.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep1.fastq.trim01.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep1.fastq.trim02.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep2.fastq.trim00.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep2.fastq.trim01.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd1Rep2.fastq.trim02.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd2Rep1.fastq.trim00.tags.sam wgEncodeCshlLongRnaSeqGm12878CellPapFastqRd2Rep1.fastq.trim01.tags.sam 我想从文件名中删除Rd1,Rd2和.sam stings.使用以下bash脚本,我可以使用两个命令删除Rd1,Rd2和.sam字符串…. for i in $(ls) do echo "${i/Rd?/}" echo "${i/.sam/}" done 但我想知道如何一步完成两个替换 谢谢你的时间! 解决方法
您可以使用扩展模式在bash中完成所有操作.
shopt -s extglob echo ${i//@(Rd?|.sam)} 这是细分: >使用//替换所有出现的模式,而不仅仅是第一个模式. 从技术上讲,你希望能够避免从单词的中间删除“.sam”,但看起来这对你的用例是安全的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |