中的AppleScript编辑:一些参数不是从AppleScript的工作到grep直通做shell脚本
do shell script "grep -w 'SomeText' /tmp/test"
忽略-w
在击:
grep -w 'SomeText' /tmp/test
不忽略参数
但例如参数-v(负值)在AppleScript中使用shell脚本
它发生在具有不同系统的不同计算机上
如何在applescript的grep中使用-w参数?
谢谢!
中的AppleScript编辑:一些参数不是从AppleScript的工作到grep直通做shell脚本
do shell script "grep -w 'SomeText' /tmp/test"
忽略-w
在击:
grep -w 'SomeText' /tmp/test
不忽略参数
但例如参数-v(负值)在AppleScript中使用shell脚本
它发生在具有不同系统的不同计算机上
如何在applescript的grep中使用-w参数?
谢谢!
无论在哪里我运行grep -w ...
命令从,终端或ApplesScript的do shell script
命令,我得到相同输出。
的手册页的-w
选项在grep
状态下:
-w,--word,正则表达式
的表达式被搜索为一个单词(仿佛被' [[:<:]]'和'[[:>:]]';见
请参阅re_format(7))。
为re_format
状态的手册页:
有括号表达式的两种特殊情况‡:托架表达式[[:<:]]和[[:>:]]匹配空字符串分别在一个词的开头和结尾。单词被定义为单词字符的前后两个单词字符的序列。单词字符是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'
。
的输出每个grep
命令的,显示如上所述,在AppleScript的包裹在do shell script
命令时是相同的,如应。
因为这些都是预期的结果。这就是为什么我很坚定的关于以下How to create a Minimal, Complete,and Verifiable example,问什么时候的问题,例如,你有,以这样的方式你有!
我建议你告诉我们,你的/tmp/test
文件和实际输出的实际内容你从每个grep
命令的获取,使用和不使用-w
选项,从两个终端和AppleScript的do shell script
命令。
尽管它不应该有所作为,但是您还应该提供macOS版本信息,以便我们可以在您正在使用的macOS的实际版本下对其进行测试,以查看这是否是该方程中的相关因素。
在我的系统的终端上运行'grep -w'SomeText'/ tmp/test'只返回'grep:/tmp/test:没有这样的文件或目录',因此提供了一个无法使用的示例。看看[如何创建一个最小,完整和可验证的示例](https://stackoverflow.com/help/mcve),然后编辑你的问题以符合它。 – user3439894
@ user3439894我不认为要求你自己创建'/ tmp/test'就太难了。 – chepner
@chepner,IMO如果有人说某件事情是有效的,但没有提供实际的工作细节,那么他们需要提供一个MCVE。这就是它的原因! – user3439894