我有大約600個文件命名爲他們有信息的機器的IP地址,並帶有.dgt
擴展名。我試圖在這些文件中搜索參數,如果給定的參數是正確的,則從這些文件中提取2行。我使用的是aix控制檯,經過一番搜索後,我在這裏找到了sed
命令。我給你留下一個我的搜索範例。多文件參數搜索bash
sed -n -e '/XP/,$p' 181* > machines1
sed -e '/XP/,$d' 181* > machines1
更具體地講,在diretory我有我所有的企業機器的文件列表,它是這樣的:
181xxxxxxxxx.dgt
181xxxxxxxxx.dgt
181xxxxxxxxx.dgt
181xxxxxxxxx.dgt
和它們包含類似這樣的信息:
MachineName= M125EEE
...
...
...
CurrentIP=XXX.XXX.XXX.XXX
...
...
OS=XP
...
...
...
我試圖獲得所有已安裝XP的機器的列表,所以我試圖提取操作系統行和MachineName行,以便我可以獲得像這樣的文件...
MachineName= M125EEE
OS=XP
MachineName= M125EEE
OS=XP
MachineName= M125EEF
OS=XP
MachineName= M125EEG
OS=XP
嗨,我測試了你的答案,所有我出來的是該命令無法解析。任何機會它是bash版本? – NmRfG
什麼是你的環境(操作系統,版本...)我使用的是Debian,bash 4.1.5,sed 4.2.1,但是在4.2.20上測試過(使用sed 4.2.1),給出了相同的結果......也許如果是雙引號而不是單引號或sed腳本:'echo $'#!/ bin/sed -nf \ n \ n/^ MachineName =/{s /^.*= * //; h}; \ n/^ OS = XP $/{g; p}'> extract-os.sed','chmod + x extract-os.sed','./extract-os。sed 181 * dgt' –
它作爲一個sed腳本,謝謝 – NmRfG