0

これは私のファイルtxtへの状況です:

kevin \t password \t path \n

steve \t password \t path \n

etc...

この種のファイルを解析して、名前を配列に、パスワードを別の配列に、パスをidemにするにはどうすればよいですか?IFS変数を使用することを考えましたが、id、psw、またはpathを識別するのに問題があります。

私はこのコードから始めました:

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 に答える