簡體   English   中英

使用sed修改文件

[英]Modify a file using sed

我有這種格式的文件

[file1]
username = admin
password = *****
ips = X.X.X.X
port = 8000

[file2]
username = admin
password = *****
ips = X.X.X.X
port = 8000

我想使用bash腳本修改文件中兩個部分的用戶名和密碼。

我需要的輸出是:

[file1]
username = user1
password = user1
ips = X.X.X.X
port = 8000

[file2]
username = user2
password = user2
ips = X.X.X.X
port = 8000

這是我嘗試的sed命令:

sed 's/username = admin/username = user1/' file [file1] username = user1 password = ***** ips = X.X.X.X port = 8000 [file2] username = user1 password = ***** ips = X.X.X.X port = 8000

我正在嘗試使用sed命令來實現此目的,但它會查找並替換具有相同值的所有用戶名和密碼。 誰能幫我解決這個問題?

sed 's/username = admin/username = user1/' x
[file1]
username = user1
password = *****
ips = X.X.X.X
port = 8000

[file2]
username = user1
password = *****
ips = X.X.X.X
port = 8000

提前感謝您的幫助!

-W

您可以嘗試以下嗎?

解決方案1:從行中的file字符串中獲取數字,然后將其添加到userpassword字符串行中。

awk '/file/{val=$0;gsub(/[a-zA-Z]|+|\[|\]/,"",val)} /^user/||/^password/{$NF="user"val} 1'  Input_file

解決方案2nd:在這種方法中,僅具有一個變量count ,每次在其上看到file字符串時,該count將增加1

awk '/file/{count++} /^user/||/^password/{$NF="user"count} 1' Input_file

如果您想將輸出保存到Input_file本身,請在上述代碼中附加> temp_file && mv temp_file Input_file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM