我有一个CSV文件,该文件由bash脚本解析,以便在文件中查找给定ID的位置,作为通过JMeter跟踪进度的方法。
我遇到问题的具体行包含以下代码:
egrep -n -C 2 '49156$'
以前我运行脚本没有问题,但我觉得字符编码或结束符字符发生了一些有趣的事情。就像现在我跑这条线一样,我得不到回报。
如果我更改正则表达式以检查额外的字符,例如'49156.$'
,那么我在OSX和Ubuntu中得到以下内容:
OSX:
1307-node/49150
1308-node/49153
1309:node/49156
1310-node/49159
1311-node/49162
Ubuntu的:
1307-node/49150
1308-node/49153
1310-node/49159
1311-node/49162
我需要脚本在Ubuntu服务器上运行,所以我真的需要在它上面运行它,但正如我所说,脚本运行良好的以前的CSV,我真的不知道这是如何最新的CSV已经改变了。
如果我使用:set list
查看VIM中的文件,我会看到以下内容:
node/49153$
node/49156$
node/49159$
node/49162$
node/49165$
我想使用模式'49156[^0-9]'
来检查数字块而不是结束行字符,但这仍会产生相同的结果:
1307-node/49150
1308-node/49153
1310-node/49159
1311-node/49162
除了上述内容之外,我不确定接下来要测试什么。感谢您的任何建议:)
答案 0 :(得分:1)
听起来你的文件可能正在使用CRLF(回车+换行)进行行结尾,而不仅仅是LF(换行)。 (例如,如果您的文件曾在Windows计算机上编辑过,则可能会发生这种情况。)因此,我建议在其上运行dos2unix
,删除任何杂散回车,并查看是否修复了它。