希望這對於某個人來說是一個簡單的問題。我很確定我知道我需要使用什麼,但我無法弄清楚如何使它工作。這是問題:追加到特定行的末尾
我有一個平面文件數據庫。就讓我們把它叫做file.db
下面是file.db
#file.db
#
line1|example|sample|name|flag|blah
line2|example|sample|name|flag|blah
line3|example|sample|name|flag|blah
一些樣品線基本上腳本計算tar文件的MD5哈希值。比方說tar文件的哈希值= 1234ABCD
我需要追加的MD5校驗和另一個分離器(|)到指定的行中file.db
例如:
#file.db
#
line1|example|sample|name|flag|blah
line2|example|sample|name|flag|blah|1234abcd
line3|example|sample|name|flag|blah
的它被附加到的行當然會被一個變量控制。我曾嘗試使用sed和awk,但只是無法弄清楚語法。
UPDATE
謝謝大家,現在有解決方案。這是我最終做的:
HASH=`md5sum tmp/$URL.tgz | awk '{ print $1 }'`
DBLINE=5
awk -v OFS="|" -v l="$DBLINE" -v h="$HASH" 'NR==l{print $0,h;next}1' databases/$WEB > /tmp/$WEB.tmp && mv /tmp/$WEB.tmp databases/$WEB
謝謝肯特,和其他人回答。
中有什麼變化?該線路如何改變與其他線路不同? – choroba
'awk'對於行數有'NR'。這可能會幫助你。 – fedorqui