我有一个包含以下数据的文本文件:
8月21日[10.23.5.5]拆解动态
8月18日[10.150.1.45] 8月21日15:28:34 otoldc
8月24日[10.96.5.10] 2012年8月21日18:58:26 HYD
8月24日[10.96.5.10] 2012年8月22日18:58:26 HYD
8月21日[192.168.15.231] sendmail [18831]
我需要删除除" ["和"]"。字符串长度" ["是固定的。 "]"之后的字符串长度多变。 我尝试过使用现有解决方案之一,但无法取得成功。是否可以使用批处理? 感谢: - )
答案 0 :(得分:2)
直接来自命令行:for /f "tokens=2 delims=[]" %F in (file.txt) do echo %F
。根据需要重定向。
不如sed / awk&正则表达式,但它不需要外部工具。
如果你打算把更复杂的东西放在一起,我真的会寻找更强大的工具 - 除了已经提到的awk或Perl在Win上的自然选择将是Powershell。
答案 1 :(得分:1)
安装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地址匹配。
答案 2 :(得分:0)