【发布时间】:2013-04-29 22:31:45
【问题描述】:
我有两个文件(file1.txt & file2.txt)。这些文件只是示例。
如何合并这两个文件以创建文件 - merge_files.txt 如示例 3?
我现在正在编写一个KornShell (ksh) 脚本,因此可以使用 KornShell、AWK、sed、Perl 单线等进行合并。
背景 - 为什么我需要合并文件:我的目标是将 old 文件(存在于第一个字段中)重命名为 new 文件(存在于第二个字段中)字段)。
示例 1
文件 file1.txt
/etc/port1-192.9.200.1-255.555.255.0
/etc/port2-192.9.200.1-255.555.255.0
/etc/port3-192.9.200.1-255.555.255.0
/etc/port4-192.9.200.1-255.555.255.0
/etc/port5-192.9.200.1-255.555.255.0
.
.
.
.
示例 2
文件 file2.txt
/etc/port1-192.90.2.1-255.555.0.0
/etc/port2-192.90.2.1-255.555.0.0
/etc/port3-192.90.2.1-255.555.0.0
/etc/port4-192.90.2.1-255.555.0.0
/etc/port5-192.90.2.1-255.555.0.0
.
.
.
.
示例 3
文件 merge_files.txt
/etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0
/etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0
/etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0
/etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0
/etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0
.
.
.
.
.
示例 4(merge_files.txt 结构)
first field second field
OLD file NEW file
【问题讨论】:
-
这两个文件的长度总是一样吗? (你最终的目标只是重命名文件,重命名文件后你会删除
merge_files.txt?) -
不,这只是示例(长度或路径可能更不同),文件内容也可能不同(无需删除 merge_files.txt)