这看起来应该很简单,但一直在努力寻找一种方法来表达搜索来回答它。
很简单,我有一个文件结构为三列,包括名称,路径和模式。循环遍历这些行时,我想将其中的每一个提取到自己的变量中以供使用。
我目前的解决方案是(原谅错别字):
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
一次。那么,有更好的方法吗?分隔符目前只是一个选项卡,但我可以将其更改为更容易使用的任何内容。
答案 0 :(得分:5)
while read name path pattern
do
# Do something
done < myFile.txt
如果您想将分隔符更改为其他内容,例如,
:
while IFS=, read name path pattern
do
# Do something
done < myFile.txt