使用 sed 时未终止的地址正则表达式
unterminated address regex while using sed
我正在使用以下命令,但在 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
请在这方面帮助我。
您需要转义 [
,否则它会认为它是一个组的开始,并转义到您数据中的 /
。
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
"[" 是正则表达式中的一个特殊字符。您需要转义它并像这样使用它:
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 ....
escape [
即 \[
并将 sed 的定界符更改为 #
或 /
以外的某些字符,这样就可以避免每次 /
]
sed -n '\#^\[2015/01/01 03:46#,\#^\[2015/01/01 03:47#p'
注意:我将每个模式前面的第一个八字转义,以便 sed 可以将其解释为分隔符。
我正在使用以下命令,但在 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
请在这方面帮助我。
您需要转义 [
,否则它会认为它是一个组的开始,并转义到您数据中的 /
。
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
"[" 是正则表达式中的一个特殊字符。您需要转义它并像这样使用它:
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 ....
escape [
即 \[
并将 sed 的定界符更改为 #
或 /
以外的某些字符,这样就可以避免每次 /
]
sed -n '\#^\[2015/01/01 03:46#,\#^\[2015/01/01 03:47#p'
注意:我将每个模式前面的第一个八字转义,以便 sed 可以将其解释为分隔符。