tcl、grep和大于号

tcl、grep和大于号,grep,tcl,Grep,Tcl,我试图在tcl中搜索包含大于号的字符串。 到目前为止,我尝试的是: grep -orI -- {\> somestring} dir 但这似乎不起作用 然后我试着只寻找大于符号: grep -orI -- \> dir 那没用。我找到了这个问题和答案: 如何传递包含“的命令行参数我发现了以下问题和答案: 如何传递包含“的命令行参数可以确保不是exec cmd中单词的第一个字符:例如,使用其他不必要的捕获括号 $ tclsh % exec cat ./afile line1 lin

我试图在tcl中搜索包含大于号的字符串。 到目前为止,我尝试的是:

grep -orI -- {\> somestring} dir
但这似乎不起作用

然后我试着只寻找大于符号:

grep -orI -- \> dir

那没用。

我找到了这个问题和答案:
如何传递包含“的命令行参数我发现了以下问题和答案:
如何传递包含“的命令行参数可以确保
不是exec cmd中单词的第一个字符:例如,使用其他不必要的捕获括号

$ tclsh
% exec cat ./afile
line1
line2 > somestring
line3
% exec grep -orI {> somestring} .
[waits for me to hit ctrl-d]
child process exited abnormally
% exec grep -orI {\(> somestring\)} .
./afile:> somestring

您可以做一些事情来确保
不是exec cmd中单词的第一个字符:例如,使用其他不必要的括号

$ tclsh
% exec cat ./afile
line1
line2 > somestring
line3
% exec grep -orI {> somestring} .
[waits for me to hit ctrl-d]
child process exited abnormally
% exec grep -orI {\(> somestring\)} .
./afile:> somestring
eval是你的朋友:

set cmd "grep this someFile.txt > outputfile.txt"
eval $cmd
eval是你的朋友:

set cmd "grep this someFile.txt > outputfile.txt"
eval $cmd

grep不是Tcl命令。因此,这必须是exec语句的一部分,或者是程序中应该包含的某个自定义过程。如果是exec调用,您必须注意引用as>用于指示Tcl exec命令中的重定向。为什么不读取该文件并使用Tcl regexp命令呢?我只想在一个大文件中计算以
符号为前缀的特定ip地址的实例。在
wc-l
中使用grep是我想到的第一件事,然后我开始好奇为什么它不起作用。在那之后,我阅读了解决问题的方法。grep不是Tcl命令。因此,这必须是exec语句的一部分,或者是程序中应该包含的某个自定义过程。如果是exec调用,您必须注意引用as>用于指示Tcl exec命令中的重定向。为什么不读取该文件并使用Tcl regexp命令呢?我只想在一个大文件中计算以
符号为前缀的特定ip地址的实例。在
wc-l
中使用grep是我想到的第一件事,然后我开始好奇为什么它不起作用。在那之后,我阅读了解决问题的答案。谢谢,但不,我正在寻找
而不是将其用于重定向哎呀!好吧,我仍然认为eval应该有效,但我还没有解决方案。eval并没有为此工作。:)这里有效的方法是使用类似于Glen J.的括号。:)Eval确实可以让您在执行命令之前拥有更大的编辑权限。谢谢,但我正在寻找
而不是将其用于重定向。;)哎呀!好吧,我仍然认为eval应该有效,但我还没有解决方案。eval并没有为此工作。:)这里有效的方法是使用类似于Glen J.的括号。:)Eval确实让您在执行命令之前拥有更大的编辑能力。非常感谢!这似乎很有效。我从来没有想过要用这种方式来解决它。谢谢,这确实有助于扩展我对tcl及其解决方法的理解。这里的基本规则是,通过使用
使正则表达式以不同的字符开头,可以避免将
作为重定向?非常感谢!这似乎很有效。我从来没有想过要用这种方式来解决它。谢谢,这确实有助于扩展我对tcl及其解决方法的理解。这里的基本规则是,通过使用
使正则表达式以不同的字符开头,可以避免将
作为重定向?严格来说,它们太友好了
exec
的语法很糟糕(是的,我们知道它很糟糕,但不想破坏大量使用它的现有脚本)
exec
的语法很糟糕(是的,我们知道它很糟糕,但不想破坏大量使用它的现有脚本)。