簡體   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