我不知道发生了什么,但是面对一系列文本文件,grep、awk、sed 已经被阉割了。简而言之,它们将不起作用。我无法使用经过验证的个人和公开示例在 awk 范围内进行模式匹配。我无法让 sed 使用 p 或 i 选项,但 s 仍然有效。 awk 和 sed 都有奇怪的行为,无论模式是否匹配,都会简单地打印所有内容。 grep 会找到一个词(通过正则表达式或字符串),但如果我去排除这个词 (-v),它会删除所有内容。我的意思是一切。
我不认为粘贴代码会有用,但我可以接受。我认为粘贴文本也行不通。
是否有一些 super secret 设置使这些程序变得愚蠢?我已经确保所有内容都保存在 utf-8 中,并且已经运行 tr -d '\r\n' 及其对所有内容的排列。这是一个 linux 盒子,我正在用头撞 table 。
所有这些都是在使用 BASH 的 linux 环境中完成的。
有什么想法吗?
最佳答案
@GordonDavisson 似乎已经成功了。你的tr -d '\r\n'
把你的文件变成一长行,没有结束换行符,所以你应该期待 grep -v <something that appears in the file>
[充其量] 不输出任何内容,因为所有内容都在一行中,虽然有些人会尽力而为,但您甚至不应该期望 UNIX 工具能够处理它,因为它不是没有结束换行符的有效文本文件.看:
$ cat file
the
quick
brown
dog
$ grep bro file
brown
$ grep -v bro file
the
quick
dog
$ tr -d '\r\n' < file > file2
$ cat file2
thequickbrowndog$
$ grep bro file2
thequickbrowndog
$ grep -v bro file2
$
不确定你想用那个 tr
实现什么所以不确定现在建议您如何处理该文件。
关于regex - 防弹文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042523/