- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在文件中有以下正则表达式。顺便说一句,我在 SunOS 上
例如:文件模式包含以下几行:
Ora-[0-9]
violated
我有一个文件“数据文件”,其中包含以下内容:
0:/scm/123451/test1.sql:dbuser@database:databasedb:no:yes:ORA-1234|key violated
1:/scm/123451/test1.sql:dbuser@database:databasedb:no:yes:ORA-|key violated
2:/scm/123451/test1_A.sql:dbuser@database:databasedb:no:yes:ORA-|key violated
3:/scm/123451/test1_B.sql:dbuser@database:databasedb:yes:yes:Violated
4.giga:key violated unique:giga
5.fifa:ora-error null value found:giga
现在,我想使用命令grep -f 或fgrep -f 找出匹配模式文件正则表达式的行。当模式文件仅包含“Ora-[0-9]”行时,以下两个命令不起作用。
grep -if ./pattern ./datafile
frep -if ./pattern ./datafile
我是否遗漏了什么,模式文件中的模式是否需要固定字符串?
最佳答案
尝试 /usr/xpg4/bin/grep
而不是 /usr/bin/grep
这似乎是您获得结果的原因。 Solaris /usr/bin
中有许多旧的 UNIX 命令,以实现追溯兼容性。 /usr/bin/awk
是臭名昭著的。
您可以看到默认使用 grep
命令获得的 grep:
which grep
您可以通过在进入/usr/bin 之前将 /usr/xpg4/bin
放入您的 PATH 变量来更改您的进程。或者使用 grep
作为/usr/xpg4/bin/grep 的别名。
在 .profile 中添加一个别名(也许是 .bashrc,随便什么):
alias grep=/usr/xpg4/bin/grep
更改您的 PATH(再次在 .profile 或任何地方):
旧路径示例 --
PATH=/usr/bin:/usr/sbin
示例更改 PATH
PATH=/usr/bin/xpg4/bin:/usr/bin:/usr/sbin
更改您的 PATH 会影响您现有的个人脚本的行为方式,通常是轻微但有时令人讨厌的方式。
还可以考虑仅使用 egrep -i '(ora|violated)'
—— 基于您的示例的建议。这不需要模式文件。可以根据需要进行多次交替。
关于regex - 使用 -f 选项的 grep 或 fgrep 没有输出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473548/
我试图从包含一些字符串的行中清除我的日志文件。字符串在一个文件中,由随机 [键盘] 字符组成 [是的,也是 *、+ 等] 似乎 grep 对 * 进行了精确匹配: grep "abc*" logs :
我有两个文件:usednaslist 和 naslist使用RHEL5 usednaslist filera:/vol/EQIMS/build filera:/vol/iquad_dev/FAST_d
我正在尝试使用 grep 从 file2 中的 file1 中提取匹配的单词并定向到输出文件。 我有文件1 Acetoanaerobium sticklandii Acetobacter pasteu
我有下面的示例文件 d41d8cd98f00b204e9800998ecf8427e /home/abid/Testing/FileNamesTest/apersand $ file d41d8cd
我正在尝试做一些非常简单的事情; grep 从列表中,字符串的精确匹配,在目录中的文件上: #try grep each line from the files for i in $(cat /dat
我是 linux/aix 的新手。我正在使用 aix,但遇到以下问题: 如果我尝试一个 find . -type f -exec fgrep -l 'searchword *$' 不返回任何内容或卡住
fgrep -ircl --include=*.{sql} "[--]"* 似乎没用。请帮助... 感谢大家的回复。我正在尝试用“#”替换“--”,但遇到了困难。我创建了一个 new question
我在文件中有以下正则表达式。顺便说一句,我在 SunOS 上 例如:文件模式包含以下几行: Ora-[0-9] violated 我有一个文件“数据文件”,其中包含以下内容: 0:/scm/12345
我是一名优秀的程序员,十分优秀!