1

这似乎应该很简单,但一直让我发疯,试图找到一种方法来表达搜索来回答它。

很简单,我有一个文件结构为三列,由名称、路径和模式组成。在循环遍历这些行时,我想将其中的每一个提取到它自己的变量中以供使用。

我目前的解决方案是(原谅拼写错误):

while read line
do
    name=$(echo "$line" | awk '{print $1}')
    path=$(echo "$line" | awk '{print $2}')
    pattern=$(echo "$line" | awk '{print $3}')
done < "myFile.txt"

然而,这似乎是一种非常低效的方法,因为它意味着awk为每个变量调用一次。那么,有没有更好的方法来做到这一点?分隔符目前只是一个制表符,但我可以将其更改为更易于使用的任何内容。

4

1 回答 1

6
while read name path pattern
do
    # Do something
done < myFile.txt

如果您想将分隔符更改为其他内容,例如,

while IFS=, read name path pattern
do
    # Do something
done < myFile.txt
于 2013-06-04T13:39:08.587 回答