1

2つの異なるディレクトリのテキストファイルからcolumn1とcolumn7を抽出しようとしています。これらのディレクトリでは、ファイルの名前は同じです。出力を別のディレクトリに保存する必要があります。

file1.txt in D1 directory

column1  column2  column3  column7
david    45.2       14.6   45.0
grecy    12.0       0.0    12.0
anjal    23.2       321.0  34.5

file1.txt in D2 directory

column1  column2  column3  column7
david    45.2       14.6   56.0
grecy    10.0       0.0    12.0
moha     23.1       321.0  334.5

output format (save the output as file1.txt in D3 directory)

column1  column1  column7  column7
david      david    45.0   56.0
grecy      grecy    12.0   12.0
anjal      moha     34.5   334.5

あなたの提案をいただければ幸いです。

4

3 に答える 3

3

pasteおよびを使用する簡単な方法awk

paste D1/file1.txt D2/file1.txt | awk '{ printf "%s\t%s\t%s\t%s\n", $1, $5, $4, $8 }' > D3/file1.txt

結果:

column1 column1 column7 column7
david   david   45.0    56.0
grecy   grecy   12.0    12.0
anjal   moha    34.5    334.5

編集:複数のファイルを処理するには、bashループを使用できます:

for i in D1/*.txt; do paste "$i" D2/${i/D1\//} | awk '{ printf "%s\t%s\t%s\t%s\n", $1, $5, $4, $8 }' > D3/${i/D1\//}; done
于 2012-08-17T06:53:34.167 に答える
0
awk '{
     a1=$1;b1=$4;
     getline <"D2/file1.txt";
     print a1,$1,b1,$4
}' D1/file1.txt >D3/file1.txt
于 2012-08-17T06:50:04.777 に答える
0
join -j 1 -o 1.1,2.1,1.7,2.7 <(D1/file1.txt | sort -k1,1) <(sort -k1,1 D2/file1.txt) > D3/file1.txt
于 2012-08-17T06:54:35.083 に答える