:
do shell script "grep -w 'SomeText' /tmp/test"
忽略-w
在Bash中:
grep -w 'SomeText' /tmp/test
不会忽略参数
但是例如参数-v(否定)在AppleScript中使用do shell脚本
它发生在具有不同系统的不同计算机上
如何在gregs from Applecript中使用-w参数?
谢谢!
答案 0 :(得分:0)
无论我从终端或 ApplesScript的 grep -w ...
命令运行do shell script
命令,我都会得到相同的输出。
-w
中grep
选项的手册页说明如下:
-w, - word-regexp
搜索表达式为一个单词(好像被'[[:&lt ;:]]'和'[[:>:]]'包围;参见
re_format(7))。
re_format
州的手册页:
括号表达式有两种特殊情况:括号表达式[[:&lt ;:]]和[[:>:]]分别匹配单词开头和结尾的空字符串。一个单词被定义为一个单词字符序列,它既不是单词字符,也不是单词字符。单词字符是 alnum 字符(由ctype(3)定义)或下划线。
/tmp/test
的内容:
$ cat /tmp/test
SomeText
MoreText
ASomeTextZ
Other Text
0 SomeText 1
$
在grep
上使用-w
而不使用 /tmp/test
:
$ grep 'SomeText' /tmp/test
SomeText
ASomeTextZ
0 SomeText 1
$
grep
找到包含'SomeText'
的所有三行。
在grep
上使用-w
/tmp/test
:
$ grep -w 'SomeText' /tmp/test
SomeText
0 SomeText 1
$
grep -w
只找到符合上面手册页摘录中所述内容的行。在这种情况下,只包含'SomeText'
。
当包含在 AppleScript中的grep
命令中时,每个do shell script
命令的输出显示在上面应该是相同的。
因为这些是预期的结果,所以当我以你的方式提出问题时,我坚持要关注How to create a Minimal, Complete,and Verifiable example!
我建议您向我们展示/tmp/test
文件的实际内容以及每个输出的实际内容 终端和 AppleScript的<{1>} 命令,包含和不包含grep
选项 / strong> -w
命令。
尽管它不应该有所作为,但是你还应该提供macOS版本信息,这样我们就可以在你正在使用的macOS的实际版本下进行测试,以便看看这是否是方程式中的相关因素。 / p>