我知道如何使用IFS通过冒号分割字符串。但是,使用我正在编写的脚本,我正在运行一个命令,它以
的格式向我返回一些内容Birthday : mon, date, year
First day : mon, date, year
我想知道生日的日期。为了做到这一点,我现在正在做:
IFS=: read -r -a DATEARR <<< "$DATES"
echo "${DATEARR[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