在批处理脚本中的变量中搜索其旁边的字符串和存储值

时间:2015-04-23 18:27:44

标签: batch-file windows-shell

我需要读取文本文件并搜索字符串,并将搜索字符串旁边的值存储在变量中。 我必须将每个值的值存储在一个变量中。

所以我的文本文件将是:

  

您好

     

你好吗

     

我的号码是:1

     

你的号码:

     

我很好

     

我很好

     

我的号码是:234

     

你的号码:

所以我必须搜索字符串“我的号码是”并将1存储在一个变量中,然后将值234存储在同一个变量中,并使用逗号(,)分隔变量。

注意:字符串“我的号码是”可以重复多次,我必须存储其所有值。

我的最终目标是将每个逗号分隔的值存储在临时表中。

请提供您的建议。

我的尝试代码:

for /f "tokens=4* delims= " %%a in ('findstr "my number is" "C:\test.txt"') do set "line=%%a"
echo "%line%

1 个答案:

答案 0 :(得分:1)

line=$(fgrep "my number is" test.txt | sed "s/[^0-9]//g" | tr '\n' ',' | sed "s/,$//")
  • line=$(...)将...的输出设置为$line
  • fgrep返回包含my number is
  • 的所有行
  • 首先sed删除所有非数字字符(如果您预期会出现负数或浮点数,请相应地修改正则表达式)
  • tr加入所有行,用,
  • 分隔
  • second sed删除尾随逗号