使用正则表达式将Bash脚本部分数据添加到行中

时间:2017-12-08 10:14:17

标签: bash shell grep

假设我有文件test.txt,它看起来像这样:

14.03.2016  12:01:58    0001039 28,427    0,200     28,427  28,437  28,427
14.03.2016  12:02:28    0001090 28,442    0,200     28,442  28,439  28,444
14.03.2016  12:02:58    0001139 28,469    0,230     28,459  28,469  28,504

我需要用bash脚本解析这个问题,以便我得到每一行:

a = 14.03.2016
b = 12:01:58
c = 0001039
d = 0,200

我不确定如何使用grep。

4 个答案:

答案 0 :(得分:2)

Bash内置了这个内容。

N

答案 1 :(得分:1)

AWK救援

cat myscript.awk
BEGIN { RS = "\n" ; FS = " " }

{
      print "a = ", $1
      print "b = ", $2
      print "c = ", $3
      print "d = ", $5
}

awk -f myscript.awk inputfile

a =  14.03.2016
b =  12:01:58
c =  0001039
d =  0,200
a =  14.03.2016
b =  12:02:28
c =  0001090
d =  0,200
a =  14.03.2016
b =  12:02:58
c =  0001139
d =  0,230

答案 2 :(得分:0)

假设输入文件的第一行存储在变量ErrorResponseException: Operation returned an invalid status code 'Not Found'中,您可以

line

创建一个由行中各个单词组成的数组。

arr=($line)
然后

将第一个单词分配给变量a。

答案 3 :(得分:0)

如果不需要名称a,b,...,则另一种方式。

while read line;do
  set -- $line
  echo '$3 = '"$3"' $6 = '"$6"
done< infile