我這種格式有一個文件接下來該怎麼插入到行
機器名稱主機1
東西here1機器名稱主機1
somethingelse2
我需要改變這作爲
機器名稱主機1
設定的用戶名1000
東西here1
機器名稱主機1
設定的用戶名1001somethingelse2
我需要找到一條線 「計算機名稱主機1」並在其旁邊的所有匹配項中插入「set username with incremental-value」行。
我這種格式有一個文件接下來該怎麼插入到行
機器名稱主機1
東西here1機器名稱主機1
somethingelse2
我需要改變這作爲
機器名稱主機1
設定的用戶名1000
東西here1
機器名稱主機1
設定的用戶名1001somethingelse2
我需要找到一條線 「計算機名稱主機1」並在其旁邊的所有匹配項中插入「set username with incremental-value」行。
awk -v user=1000 '
{print}
/machine name host1/ {printf("set username %d\n", user++)}
' filename
我通過用戶名「種子」值與awk的-v選項
使用一個Perl的一行(假設與數據文件的名字叫做「機」:
perl -n -i.bak -e '$i=999 if !$i;
if (m/machine name host1/) {
$i++;
$_ = "$_\nset username $i\n";
};
print;' machines
注意的是,文件本身將被改變和備份文件擴展名爲.bak的創建
一個班輪帶有嵌入式換行符似乎有點用詞不當:) – 2011-03-26 12:50:35
@William:德勤 – 2011-03-26 20:11:41
謝謝你的答案。但我的需求需要awk。 :d – 2011-03-28 06:42:00