Bash - 如何忽略每行的第一个分隔符?

时间:2014-07-07 08:27:34

标签: arrays bash delimiter

我有一个文件BookDB.txt,它以下列方式存储信息:

C++ for dummies:Jared:10.67:4:5
Java for dummies:David:10.45:3:6 
PHP for dummies:Sarah:10.47:2:7

如何忽略每一行的第一个分隔符并将前两个字段添加到数组中? (参见下面的例子)。

假设在运行时,脚本分别向用户询问变量TITLEAUTHOR。然后,我如何将组合字段存储到数组中?

例如:

ARRAY=('C++ for dummies:Jared' 'Java for dummies:David' 'PHP for dummies:Sarah')
ARRAY=($TITLE:$AUTHOR)

1 个答案:

答案 0 :(得分:2)

这与您的other question非常相似,连接它会对您有所帮助。

My answer可以修改以轻松处理这个问题。

IFS=$'\n'; arr=( $(awk -F':' '{print $1 ":" $2 }' Input.txt ) )

请注意,无需忽略第一个分隔符来解决此问题。它足以承认它并包含两个字段而不是一个字段。