我有一个模式文件,例如t.txt,其中包含以下内容:
vali
Run Code Online (Sandbox Code Playgroud)
我想运行的grep对文件,说一个,包含以下内容:
validate
validate:
bw_validate:
[echo] Validating project: CrossService_v1_59_5_1
[echo] Found 62 errors and 28 warnings
[echo] -----------------------------------------------------------------
[echo] Validating project: CRM-UDB_59_4_2
[echo] Found 25 errors and 28 warnings
[echo] -----------------------------------------------------------------
[echo] Validation Failed: At least one project contains errors.
notify:
BUILD FAILED
bw.xml:311: Validation Failed: At least one project contains errors.
Run Code Online (Sandbox Code Playgroud)
如果我执行:
grep -iE vali a
Run Code Online (Sandbox Code Playgroud)
我得到了预期的输出,即:
validate
validate:
bw_validate:
[echo] Validating project: CrossService_v1_59_5_1
[echo] Validating project: CRM-UDB_59_4_2
[echo] Validation Failed: At least one project contains errors.
bw.xml:311: Validation Failed: At least one project contains errors.
Run Code Online (Sandbox Code Playgroud)
但是如果我执行:
grep -iE -f t.txt a
Run Code Online (Sandbox Code Playgroud)
我没有任何比赛。文件是可读的,并且都位于同一目录(我从中执行命令)。我同时尝试了-f和--file = t.txt,-file ='t.txt',-file =“ t.txt”
我在Linux Fedora 16 64位上。奇怪的是,同一命令在带有grep / egrep端口的Windows中也能正常工作。
我想念什么吗?感谢您的帮助,因为这让我头疼:(谢谢!
它应该工作正确(它对我有用)。该-f开关由POSIX指定。
您说它可以在Windows上运行的事实给了我一个主意:可能是t.txt文件以DOS换行符结尾吗?我用一个干净的文件(没有换行符)尝试了一下,它起作用了。然后,我使用DOS文件进行了尝试,并且能够重现您的结果。
尝试dos2unix“修复” DOS文件。
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |