0

这是我的文件txt中的情况:

kevin \t password \t path \n

steve \t password \t path \n

etc...

如何解析这种文件以将名称放入数组中,将密码放入另一个数组中,并将路径同上?我想使用 IFS 变量,但我无法识别什么是 id 或 psw 或路径。

我从这段代码开始:

old_IFS=$IFS

IFS=$'\t\n'

lines=($(cat MYFILE)) 

IFS=$old_IFS

还是更好地使用awk?

有人有想法吗?

4

2 回答 2

1

使用 while 读取循环:

while IFS=$'\t' read user password path
do
    users+=( "$user" )
    passwords+=( "$password" )
    paths+=( "$path" )
    echo "$user's password is $password, and their path is $path"
done < yourtextfile
于 2013-02-13T19:24:14.940 回答
0

这是一种低效但易于阅读的方法:

f() {
    local IFS=$'\n' # Don't wordsplit on just any whitespace. Newlines only
    names=( $(cut -d$'\t' -f1 < file) )
    passes=( $(cut -d$'\t' -f2 < file) )
    paths=( $(cut -d$'\t' -f3 < file) )
}
f
于 2013-02-13T19:29:14.587 回答