私は次のことをしようとしています:
- ファイルのリストをループします
- 各ファイルを編集し、「トリミングされた」ファイルを出力します
- トリミングされた各ファイルを順番に作成済みのマスターファイルに水平方向に結合します
ステップ1と2が機能していますが、3が機能しません。
例
マスターファイル:
Col1 Col2
A 1
B 1
C 2
ファイルS1のトリミングファイル:
S1.Col3 S1.Col4
0 1
1 1
1 1
S1とS2がMASTERに参加した後の出力I
Col1 Col2 S1.Col3 S1.Col4 S2.Col3 S2.Col4
A 1 0 1 0 1
B 1 1 1 1 0
C 2 1 1 0 0
各ループの後、次のようなものを実行しようとしました:
paste MASTER.txt S1.txt > MASTER.txt
ただし、上記の代わりに、最後のSファイルのデータのみを含むファイルを取得します。出力せずにループの外でこれを実行しようとしましたが、すべて正常に動作します。答えてくれてありがとう。
完了のために、forループの内訳を非常に簡単に示します。
for FILE in FILELIST
do
cut -f4,6 $FILE > ${FILE}_trimmed.txt
paste MASTER.txt ${FILE}_trimmed.txt > MASTER.txt
done
あなたの言っていることがわかりました。最初に試しました
—
ガイウスアウグストゥス
paste MASTER.txt ${FILE}_trimmed.txt > MASTER2.txt
が、ファイルをループしている場合は明らかに動作しません。最終的にMASTERに結合された最終的なSファイルになります。だから、私が探している結果をどのように得るかはまだ不明です。私はRでの作業に慣れていて、一時変数として保存し、最後にファイルを出力することができました。わからないことは、ここではもっともらしいですか...これを行うには良い方法あれば
単純に変更
—
iruvar
paste MASTER.txt ${FILE}_trimmed.txt > MASTER.txt
しますpaste MASTER.txt ${FILE}_trimmed.txt > MASTER2.txt && mv MASTER2.txt MASTER.txt
そうですか。それは最高です。回答を作成しましたが、より徹底的に説明したい場合は削除します。
—
ガイウスアウグストゥス
同様に問題はありません、1
—
iruvar
> MASTER.txt
ファイルのpaste
内容を取得する前にファイルを上書きします。