grep与shell变量中的外卡字符

时间:2016-01-07 09:34:17

标签: shell grep ksh

我必须以下列方式在ksh脚本中使用grep命令。 我有一个shell变量$string,每次都会有随机字符串参数,我希望使用正则表达式“*”找到它的部分匹配

我试过了:

  1. grep "$string" file.txt =>没有部分提取
  2. grep "$string*" file.txt =>它在字符串
  3. 的末尾给出结果0或更多次出现
  4. 现在我想使用grep "*$string*" file.txt ..我已将其转义"\*$string*""*\$string*"对我有帮助吗?
  5. 如何使用grep "*$string*" file.txt?还是其他任何命令?

    我输入了$string="AAA",输出应该匹配

    1. AAA
    2. <any number of characters>AAA<any number of characters>
    3. 如果在任何地方找到AAA它应该匹配..通常grep会这样做,但它不会在这里获取。

2 个答案:

答案 0 :(得分:1)

虽然你的问题不清楚,但我怀疑你正在为固定字符串寻找-F标志。这可以确保没有正则表达式元字符。

答案 1 :(得分:1)

要搜索字符串最好使用fgrep或等效的grep -F

  

-F, - 固定字符串   将PATTERN解释为固定字符串列表,由换行符分隔,其中任何一个都要匹配。

以下示例应匹配文件中出现的所有“$ string”。

fgrep "$string" file.txt