繁体   English   中英

Unix Shell脚本

[英]Unix Shell Scripting

我遇到的情况是,我有一个源文件和一个目标文件,应该是相似的。 源文件具有如下信息集。 我需要比较源文件和目标文件中的每组信息。 如果目标文件中缺少任何内容,则需要将该行写入目标文件中。 我本来可以逐行匹配的,但是源文件和目标文件的集合却没有顺序。 请帮助我如何使用shell脚本实现。

源文件:

[Set.1]
value=1
date=today

[Set.2]
value=2
date=today

目标文件:

[Set.2]
value=2

[Set.1]
value=1
date=today

如果可以看到,目标文件的[Set.2]中缺少日期,因此,我需要从源文件中复制它。

如果file_set1中存在file_set2中缺少的任何内容,将通过file_set2和file_set1下面的命令进行比较,然后将其复制回file_set2。

awk 'FNR==NR{a[$0];next}!($0 in a)' file_set2 file_set1 >>file_set2

你可以尝试使用rsync

rsync /target/file/path /source/file/path 

这要么是一个非常容易的问题,要么是一个难题。 如果您只需要使文件相同,则

cp source_file target_file

足够了。 但是似乎您想保持target_file中节的顺序不变。 这将需要您首先解析文件记住各节的顺序。

由于这是Windows INI文件格式,因此各节的顺序对于读取该文件的程序而言并不重要。 检查以确保读者是否真正在乎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM