Bash字符串爆炸

时间:2012-01-20 14:44:10

标签: bash unix freebsd explode

我的文件如下:

record=123
date=2012.01.20 10:22

在bash文件中我做cat myfile.ini,然后我需要使用像explode这样的东西,因为我只需要grep 123数字记录数据,而不是其他任何内容。

如何在bash中完成?

4 个答案:

答案 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)