[英]Extracting IP addresses from text file with batch
我有一個文本文件,其數據如下:
8月21日[10.23.5.5]拆解動態
8月18日[10.150.1.45] 8月21日15:28:34 otoldc
2012年8月24日[10.96.5.10] 2012年8月21日18:58:26
2012年8月24日[10.96.5.10] 2012年8月22日18:58:26
8月21日[192.168.15.231] sendmail [18831]
我需要刪除除以[[和]]包圍的IP地址以外的所有內容。 “ [”之前的字符串長度是固定的。 “]”之后的字符串長度有所不同。 我在這里嘗試使用現有解決方案之一,但沒有成功。 可以使用批處理嗎? 謝謝:-)
直接從命令行: for /f "tokens=2 delims=[]" %F in (file.txt) do echo %F
。 根據需要重定向。 不如sed / awk和regexes靈活,但是它不需要外部工具。
如果您打算將一些更復雜的東西放在一起,那么我真的會尋找功能更強大的工具-除了已經提到的awk或Win上Perl的自然選擇之外,Powershell也是不錯的選擇。
如果您的系統尚未安裝sed
版本,請安裝它。
$ sed -r -e 's/^[^[]*\[([^]\]*)].*/\1/' file.txt
10.23.5.5
10.150.1.45
10.96.5.10
10.96.5.10
192.168.15.231
這sed的一個班輪“腳本”輸出除了第一套就行了[]方括號里面的內容從線去除一切后,每個輸入行-它不檢查這些內容,以確保它的IP地址相匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.