awk を使用して新しい行を空白に置き換えます。

awk を使用して新しい行を空白に置き換えます。

ディレクトリ内のすべてのファイルから生成されたテキストファイルがあります。このファイルを私が持っているスクリプトへの入力として使用したいが、正しく解析するには、特定の方法でフォーマットされたテキストファイルが必要です。

現在のテキストファイル(ファイル名リスト)の形式は次のとおりです。

A1_R1.fastq.gz
A1_R2.fastq.gz
A2_R1.fastq.gz
A2_R2.fastq.gz
A3_R1.fastq.gz
A3_R2.fastq.gz

RN各サンプルはタブで区切られ、同じ行になるようにペアになっている読み取り(同じ名前を持つが値が異なるファイル)が必要です。

A1_R1.fastq.gz A1_R2.fastq.gz
A2_R1.fastq.gz A2_R2.fastq.gz
A3_R1.fastq.gz A3_R2.fastq.gz

1000以上のアイテムがあるので、awkなどを使用してファイルを変更する方法が欲しいが、awkの経験はあまりありません。

ベストアンサー1

質問に示すように行が並べ替えられていると仮定すると、このpasteコマンドは次のことができます。

$ paste - - < input_file
A1_R1.fastq.gz  A1_R2.fastq.gz
A2_R1.fastq.gz  A2_R2.fastq.gz
A3_R1.fastq.gz  A3_R2.fastq.gz

-dデフォルトのTAB以外の項目で列を区切るには、このオプションを使用しますpaste。単純なスペースの場合:

$ paste -d ' ' - -  <input_file

おすすめ記事