我正在使用以下命令,但在linux中运行命令时,得到以下错误。
sed -n '/^[2015/01/01 03:46/,/^[2015/01/01 03:47/p' < Input.txt
sed: -e expression #1, char 42: unterminated address regex
KIndly帮助我。
答案 0 :(得分:6)
您需要转义[
,否则它会认为它是组的开头,然后转到数据中的/
。
sed -n '/^\[2015\/01\/01 03:46/,/^\[2015\/01\/01 03:47/p' Input.txt
或(感谢nu11p01n73R)
sed -n '\|^\[2015/01/01 03:46|,\|^\[2015/01/01 03:47|p' Input.txt
答案 1 :(得分:1)
“[”是正则表达式中的特殊字符。您需要将其转义并使用它:
sed -n '/^\[2015\/01\/01 03:46/,/^\[2015\/01\/01 03:47/p' Input.txt
Output:
[2015/01/01 03:46] INFO ....
[2015/01/01 03:46] ERROR ....
[2015/01/01 03:47] INFO ....
答案 2 :(得分:0)
转义[
即\[
并将sed的分隔符更改为#
或/
以外的某个字符,这样就可以避免每次/
< / p>
sed -n '\#^\[2015/01/01 03:46#,\#^\[2015/01/01 03:47#p'
注意:我在每个模式前面的第一个octothorpe转义,以便sed可以将其解释为分隔符。