如何一致地逐行合并两个文件

我有两个文件( 和 ),这些文件仅是示例。

如何合并两个文件,以创建文件 作为示例3

我现在写ksh脚本,所以可以用ksh,awk,sed,perl一个内衬… etc合并

我的目标是将 (存在于第一个字段中)重命名为 (存在于第二个字段中),

例子1

more 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

more 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

 more 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

.

.

.

.

.

example4(merge_files.txt结构)

 first field                           second field

OLD file NEW file

回答:

您可以用来paste并排格式化文件:

$ paste -d" " file1.txt file2.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

例如:

$ paste -d" " file1.txt file2.txt | while read from to; do echo mv "${from}" "${to}"; done

mv /etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0

mv /etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0

mv /etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0

mv /etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0

mv /etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0

当然,您需要进行一些安全检查([ -f "${from}" ],…)。

免责声明:仅当文件名中没有空格时才有效。

以上是 如何一致地逐行合并两个文件 的全部内容, 来源链接: utcz.com/qa/414374.html

回到顶部