我有两个具有以下结构的文本文件:
文件1
Column1:Column2
Column1:Column2
...
文件2
Column3
Column3
...
我想创建一个具有以下文件结构的文件:
Column1:Column3
Column1:Column3
...
打开任何建议,但如果解决方案可以从Bash shell或sed / awk / perl / 等完成,那将会很好......
答案 0 :(得分:11)
cut -d: -f1 "File 1" | paste -d: - "File 2"
这会从文件1中删除字段1(用冒号分隔)并将其粘贴到文件2中的唯一列,用冒号分隔输出字段。
答案 1 :(得分:4)
这是一个awk解决方案。它假定file1和file2具有相同的行数。
awk -F : '{ printf "%s:",$1; getline < "file2"; print }' < file1
答案 2 :(得分:2)
由于没有提出纯粹的bash实现,也假设行数相等(仅限bash v4):
mapfile -t file2 < file2
index=0
while IFS=: read -r column1 _; do
echo "$column1:${file2[index]}"
((index++))
done < file1
bash v3:
IFS=$'\n' read -r -d '' file2 < file2
index=0
while IFS=: read -r column1 _; do
echo "$column1:${file2[index]}"
((index++))
done < file1