0

我有一个由 bash 脚本解析的 CSV 文件,以便在文件中找到给定 ID 的位置,作为通过 JMeter 跟踪进度的一种方式。

我遇到问题的特定行包含以下代码:

egrep -n -C 2 '49156$'

以前我运行脚本没有问题,但是我认为字符编码或结束行字符发生了一些有趣的事情。现在,当我运行这条线时,我没有回报。

如果我更改正则表达式以检查额外的字符,例如'49156.$'我在 OSX 和 Ubuntu 中得到以下内容:

操作系统:

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 是如何改变的.

如果我使用 VIM 查看文件,:set list我会看到以下内容:

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

除了上述之外,我不确定接下来要测试什么。感谢您的任何建议:)

4

1 回答 1

1

听起来您的文件可能正在使用 CRLF(回车 + 换行)作为行尾,而不仅仅是 LF(换行)。(例如,如果您的文件曾在 Windows 机器上编辑过,则可能会发生这种情况。)因此,我建议dos2unix在其上运行,以删除任何杂散的回车符,并查看是否可以修复它。

于 2013-08-16T04:12:41.910 回答