如何更新shell腳本,我可以更換用戶名「U1」至從用戶輸入的任何值.txt文件我如何使用shell腳本
'username' => "u1"
下面是更換用戶名和密碼現有代碼: -
#!bin/bash
echo "\nEnter Username to replace: "
read name
sed -i -e s/u1/"$name"/g /var/1.txt
如何更新shell腳本,我可以更換用戶名「U1」至從用戶輸入的任何值.txt文件我如何使用shell腳本
'username' => "u1"
下面是更換用戶名和密碼現有代碼: -
#!bin/bash
echo "\nEnter Username to replace: "
read name
sed -i -e s/u1/"$name"/g /var/1.txt
使用sed
,我們可以拆分聲明爲兩個 - 和更換第二部分與所需變量[此處爲$ name] - 而不是使用u1
對腳本進行硬編碼。
sed -i "s#\(.*'username' =>\)\(.*\)#\1 "\"$name\""#" /var/1.txt
結果相同,如下使用awk
來實現:
awk -v name="$name" '/username/{gsub($3,"\""name"\"")};1' /var/1.txt
嘗試 '$名稱',而不是 「$名」
最好的辦法是用sed -i -r
sed -i -r 's/u1/'$name'/g' /var/1.txt
另一種選擇,你可以嘗試這是保存到臨時文件,將其移回
例子:
sed 's/u1/'$name'/g' /var/1.txt > /tmp/temp
mv /tmp/temp /var/1.txt
與-r選項工作太棒了!非常感謝。 在下一次迭代中,我將輸入「u3」替換爲「u2」(以前執行上述代碼,值「u2」替換爲「u1」)。這怎麼處理? –
我完全不瞭解您的要求。把sed放在循環中。也請給予好評我的答案,如果你得到了你找 –
的答案,我要替換「U1」或輸入 的任何其它值: - 「用戶名」 =>「U1」 輸入值 - > U2 O/p: - '用戶名'=> 「U2」 代碼重新執行: - '用戶名'=> 「U2」 輸入值 - > U3 O/p的結果: - 「用戶名'=>「u3」 –
如果我需要在$ name的末尾添加逗號,我該如何處理? 示例: - $ name = admin 輸出: - admin, –