在一个实例中 Grep 为“:”,但在另一个实例中不为“:”

Grep for ":" in one instance, but not ":" in another

我需要在 alpha char 之后找到 :,但当它出现在整数之前或之后时,我需要找到 :,并且在设置 grep 时遇到问题。

在下面的示例中,我只想将 Creation Time 之后的 : 替换为 TABNOT 它出现在数字之间...

Creation Time: 10/3/02 6:48:34 PM

我正在使用 BBEdit。任何建议将不胜感激,谢谢。

我不知道 BBEdit,但是这种东西在 Perl 中真的很容易。例如:

echo "Creation Time: 10/3/02 6:48:34 PM" | perl -ne '$_ =~ s/([^\d]):/\t/g; print $_'

或者如果您有一个名为 stuff.txt 的文件,其中包含字符串,您可以键入:

perl -ne '$_ =~ s/([^\d]):/\t/g; print $_' stuff.txt

perl 中的 -n 标志使其循环遍历文件或 STDIN,选项的 -e 部分运行引号中的程序。循环输入时,该行存储在变量 $_ 中。所以我正在做的是替换 $_ 的内容,匹配任何不是数字的部分(括号中的部分),然后是 : 和匹配的部分(</code>等于第一个括号内的部分)和制表符。替换后,我打印修改后的 <code>$_.

所以你可以试试

perl -ne '$_ =~ s/([^\d]):/\t/g; print $_' stuff.txt > check.txt

然后看看check.txt,确保我没有误导你,然后复制过来。