【发布时间】:2012-02-15 02:53:01
【问题描述】:
我的文件如下所示:
record=123
date=2012.01.20 10:22
在 bash 文件中我执行cat myfile.ini,然后我需要使用类似explode 之类的东西,因为我只需要grep 123 数字记录数据,不需要其他任何东西。
如何在 bash 中完成?
【问题讨论】:
我的文件如下所示:
record=123
date=2012.01.20 10:22
在 bash 文件中我执行cat myfile.ini,然后我需要使用类似explode 之类的东西,因为我只需要grep 123 数字记录数据,不需要其他任何东西。
如何在 bash 中完成?
【问题讨论】:
awk -F'=| ' '/record/ {print $2}'
在上面的命令中用“date”代替“record”来得到日期(时间应该是$3)。
这个键是变量的名称,而不是依赖于值的正则表达式匹配。它使用空格或等号作为字段分隔符。
【讨论】:
record= 1 或 date=2012-01-20 16:30。
-F'='。
如果您可以控制 ini 文件,请将其重写为:
record=123
date="2012.01.20 10:22"
然后在你的“bash 文件”中做
. myfile.ini
echo $record
这是典型的方法。 (如果你可以控制 ini 文件)
【讨论】:
你可以使用:
#!/bin/sh
VALUE="`grep '^record=' myfile.ini |sed 's/[^0-9]//g'`"
【讨论】:
grep '^record=' myfile.ini | head -1 | sed 's/[^0-9]//g'"
date= 符号后面的日期?
你可以这样做:
awk '/=[0-9]+$/' file.txt
在标准输出上仅打印 = 符号后带有数字内容的行。
但是,如果您只想将 123 捕获到变量中,那么您可以使用:
val=$(awk -F"=" '/=[0-9]+$/{print $2}' file.txt)
【讨论】: