私の問題は、フォルダに複数のファイルがあり、各ファイルの特定の行を変更したいということです。たとえば、
file_1.fasta には以下が含まれます。
>remove__c_0000234
ACTG
>remove__c_0000235
CGTA
file_2.fasta には以下が含まれます。
>remove__c_0000345
CCTA
>remove__c_0000431
...
>remove__
このフォルダ内のすべてのファイルからこのセクションを削除したいと思います。 1行のコードを使用してLinuxでこれを行うにはどうすればよいですか?
ありがとうございます!
答え1
十分簡単です。sed -s -i 's/>remove__//g' *.fasta
長い形式は、sedが連続したストリームではなく別々のファイルとして入力を処理するように指示するところsed --separate --in-place 's/>remove__//g' *.fasta
です。標準出力に結果を表示するのではなく、ファイルで直接動作させるようにします-s
。-i
上記のコマンドを実行した後、サンプルファイルを表示します(ヘッダーはファイルには表示されません)。
$ more *.fasta | cat
::::::::::::::
file_1.fasta
::::::::::::::
c_0000234
ACTG
c_0000235
CGTA
::::::::::::::
file_2.fasta
::::::::::::::
c_0000345
CCTA
c_000043