使用sed从文件中提取关键字时出现问题。
文件中的内容类似于:
======================= keyword begin =======================
blablabla
======================== keyword end ========================
然后我做:
$ sed -n 's/=* \(.*\) begin =*/\1/p' test
keyword ## It is ok
$ a=`sed -n 's/=* \(.*\) begin =*/\1/p' test`
$ echo "[$a]"
]keyword ## Why the output is like this? I think it should be [keyword]
我只是不知道为什么出现'] keyword'。
发生这种情况的原因是,由于在Windows计算机上创建了文件,因此文件具有回车符。用dos2unix
或将它们从文件中删除tr -d '\r'
。
您可以知道,因为\r
原因导致终端从一开始就开始覆盖同一行。如果您写[keyword
,然后从该行的开头用覆盖]
,则最终以]keyword
。
有关更多信息,请参见bash标签Wiki。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句