我正在編寫一個腳本來驗證文件中是否有一些更改是正確的。我們的想法是找到新的變化和這些值與舊的相比,我可以看到什麼是被改變,因爲文本文件,每行有以下結構的參數:如何編寫腳本來驗證長文本文件中的更改?
TR_Partner=google
TR_New_Partner=google#
每當有第一行是原始值,下面一行包含相同的名稱,只是添加了「新」和新值(本例中爲google#)。我需要一個腳本,可以檢查在很長的文本文件中的所有行,以檢查是否所有的新值與原始值匹配,我嘗試這樣做:
#!/bin/bash
partner="$(grep -m1 Partner test.txt | cut -d"=" -f2)"
new_partner="$(grep -m1 New_Partner test.txt | cut -d"=" -f2)"
Data="$(grep -m1 Data test.txt | cut -d"=" -f2)"
New_Data="$(grep -m1 New_Data test.txt | cut -d"=" -f2)"
Direction="$(grep -m1 Direction test.txt | cut -d"=" -f2)"
New_Direction="$(grep -m1 New_Direction test.txt | cut -d"=" -f2)"
if [ $partner != $new_partner ]; then
echo "warning invalid data"
exit 1;
fi
if [ $Data != $New_Data ]; then
echo "warning invalid data"
exit 1;
fi
if [ $Direction != $New_Direction ]; then
echo "warning invalid data"
exit 1;
fi
我測試了這樣的代碼: bash script.sh test.txt
和所需的輸出是這樣的,因爲谷歌不會與谷歌#匹配:
warning invalid data
,但是這是一個很不錯的辦法,因爲它不一般的工作,我需要找到一種方法來完成這項任務,我想感謝任何有關如何繼續完成這項艱鉅任務的建議或暗示。
的所述file.txt
是這樣的:
ENTERPRISE
AB_EDI_Number=number
AB_Partner=google
AB_New_Partner=google#
AB_Data_Type=null
AB_New_Data_Type=null
AB_Address=address
AB_New_Address=address
使用'diff'這就是它的目的,並沒有多少意義在嘗試重新創建它......或者把你的文件放到版本控制系統中。 – beroe