![2つのファイルの単語をそのまま追加する方法[重複]](https://linux33.com/image/90445/2%E3%81%A4%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%8D%98%E8%AA%9E%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%5B%E9%87%8D%E8%A4%87%5D.png)
1行あたりの単語数と列フィールド数が同じ2つのファイルがあります。これら2つのファイルをそのまま追加したいと思います。たとえば、
ファイル1:
A1 B1 C1
D1 E1 B1 C1
ファイル2:
A2 B2 C2
D2 E2 B2 C2
出力は次のようになります(単語数を考慮する必要があります)。
A1_A2 B1_B2 C1_C2
D1_D2 E1_E2 B1_B2 C1_C2
答え1
これアッ解決策:
awk '{
getline a <"file2"
split(a,A)
for(i=1;i<=NF;i++)
printf("%s_%s ", $i, A[i])
print ""
}' file1
生地+sed:
paste file1 file2 |
sed '
:a
s/\(\(^\|\s\)[^_[:blank:]]\+\b\)\s*\(.*\t\)\(\S\+\)\s*/\1_\4 \3/
ta
s/\s*$//
'
バッシュループ:
exec 3<file1 4<file2
while read -u 3 a ; read -u 4 b
do
echo $(paste -d_ <(printf '%s\n' $a) <(printf '%s\n' $b))
done