1
我有以下的配置文件:使用sed或awk追加重複的文本?
servers = (
{
host = "localhost";
...
timeout = 5;
},
{
host = "127.0.0.1";
...
timeout = 0;
},
{
host = "example.com";
...
timeout = 99;
}
);
我想追加「指數」在每節的末尾設置這樣的配置是這樣的:
servers = (
{
host = "localhost";
...
timeout = 5;
index = 1;
},
{
host = "127.0.0.1";
...
timeout = 0;
index = 2;
},
{
host = "example.com";
...
timeout = 99;
index = 3;
}
);
我怎樣才能做到這一點與傳統的Unix工具如sed或awk?
Thanx,這是我期望的更簡單!我也嘗試使用正則表達式而不是平等來使其更加魯莽。這個正則表達式「$ 1〜/^\ s * timeout \ s * /」工作正常。但是這個正則表達式「$ 1〜/^\ s * timeout \ s * \ = \ s * \ d + \ s *; /」與字符串不匹配。你有好主意嗎? –
@VitalyP'$ 1'匹配第一個單詞。如果你想要整行,你應該使用'$ 0',所以表達式可以是'$ 0〜/^[\ t] * timeout [\ t] * = [\ t] * [0-9] * [\ t ] *; [\ t] * $'。 Awk默認匹配整行,所以你可以寫成awk'1;/^ [\ t] * timeout [\ t] * = [\ t] * [0-9] * [\ t] * ; [\ t] * $/{printf「index =%d; \ n」,++ i}'file' – user000001