[英]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.