Batch file 如何使用批处理文件复制特定数据?
这是数据Batch file 如何使用批处理文件复制特定数据?,batch-file,batch-processing,Batch File,Batch Processing,这是数据 mean MP2 rms : 0.287070 m 我只想0.287070 我该怎么做 我尝试了许多命令,但都失败了。如果所有数据的模式都是1位、1点、6位,则可以使用: sed -r 's/.*([0-9]\.[0-9]{6}).*/\1/' file 如果在包含“mean MP2 rms”的行中只需要此图案: 如果您的数据是6个由空格分隔的字段,并且没有奇怪的字符,则可以使用以下方法: @echo off for /f "usebackq tokens=1,
mean MP2 rms : 0.287070 m
我只想0.287070
我该怎么做
我尝试了许多命令,但都失败了。如果所有数据的模式都是1位、1点、6位,则可以使用:
sed -r 's/.*([0-9]\.[0-9]{6}).*/\1/' file
如果在包含“mean MP2 rms”的行中只需要此图案:
如果您的数据是6个由空格分隔的字段,并且没有奇怪的字符,则可以使用以下方法:
@echo off
for /f "usebackq tokens=1,2,3,4,5,6 delims= " %%a in ("data.txt") do (
echo %%e
)
在循环中,每个字段从%%a
到%%f
获取一个字母<代码>%%e是您需要的数据。例如:
C:\batch>get_data.cmd
0.287070
0.387070
0.487070
0.587070
我想你的帽子锁坏了。我只是想解释一下你的答案。sed命令仅适用于Unix/Linux系统。要使用类似于
sed
的Windows命令,请参见findstr
@DavidRuhmann-FINDSTR无法从行中提取匹配的文本。它只能打印包含匹配项的整行。@dbenham这是真的,但是可以添加一个简单的for
来完成该部分for/f“usebackq tokens=5”%%A在(`find或findstr``中)do echo中。%%A
有很多用于Windows的sed实现。例如。
C:\batch>get_data.cmd
0.287070
0.387070
0.487070
0.587070