我的文件如下:
record=123
date=2012.01.20 10:22
在bash文件中我做cat myfile.ini
,然后我需要使用像explode这样的东西,因为我只需要grep 123
数字记录数据,而不是其他任何内容。
如何在bash中完成?
答案 0 :(得分:4)
awk -F'=| ' '/record/ {print $2}'
在上面的命令中将“date”替换为“record”以获取日期(时间将在$3
)。
这会键入变量的名称,而不是依赖于值的正则表达式匹配。它使用空格或等号作为字段分隔符。
答案 1 :(得分:3)
如果您可以控制ini文件,请将其重写为:
record=123
date="2012.01.20 10:22"
然后在你的“bash文件”中你做
. myfile.ini
echo $record
这是典型的方法。 (如果您可以控制ini文件)
答案 2 :(得分:2)
您可以使用:
#!/bin/sh
VALUE="`grep '^record=' myfile.ini |sed 's/[^0-9]//g'`"
答案 3 :(得分:1)
您可以这样做:
awk '/=[0-9]+$/' file.txt
到在stdout上仅打印=符号后的数字内容行。
但是,如果您只想将123捕获到变量,那么您可以使用:
val=$(awk -F"=" '/=[0-9]+$/{print $2}' file.txt)