无法按行和冒号分割字符串

时间:2017-08-14 15:41:12

标签: bash unix

我知道如何使用IFS通过冒号分割字符串。但是,使用我正在编写的脚本,我正在运行一个命令,它以

的格式向我返回一些内容
Birthday      :      mon, date, year
First day     :      mon, date, year

我想知道生日的日期。为了做到这一点,我现在正在做:

IFS=: read -r -a DATEARR <<< "$DATES"
echo "${DATEARR[1]}" 

理想情况下会打印“生日:”之后的日期,但不幸的是什么都没有打印。有小费吗?我应该逐行拆分这个字符串吗?

我想要的预期输出是: 星期一,日期,年份(对应于生日字段)

1 个答案:

答案 0 :(得分:0)

这是awk的定制作业,带有自定义字段分隔符:

awk -F '[[:blank:]]*:[[:blank:]]*' '{print $2}' file

mon, date, year
mon, date, year

请注意,对于IFS=:,您将获得一个用空格填充的字符串:

while IFS=: read -r -a DATEARR; do echo "${DATEARR[1]}"; done < file

      mon, date, year
      mon, date, year

您可以使用它删除所有空格:

while IFS=: read -r -a DATEARR; do echo "${DATEARR[1]//[[:blank:]]}"; done < file

mon,date,year
mon,date,year