配列で使用するために文字列をインデックスに変更しようとしましたが、機能しません。
これは私のファイルです。
$ cat file1.txt
101,Harish,BAN
102,Srinu,HYD
このコードは:
#!/bin/bash
IFS=','
while read line
do
DELIM_REMOVE=`echo $line|sed 's/,/ /g'`
V=($DEL_REMOVE)
echo ${DELIM_REMOVE}
for i in "${!V[@]}"; do
printf 'V[%s] = %s\n' "$i" "${V[i]}"
echo "${V[i]}"
done
done < /home/ec2-user/file1.txt
echo "${V[i]}"
また、別のループで動的に生成された変数を使用する必要があります。
ベストアンサー1
テキストを処理するためにシェルループを使用しないでください、テキスト処理ユーティリティを使用します。
awk -F, '{for (i = 0; i < NF; i++) printf "v[%d] = %s\n", i, $(i+1)}' < file1.txt
もしあなたなら持つループを使用すると、bash
次のように書くことがより合理的です。
while IFS=, read -ra v; do
for i in "${!v[@]}"; do
printf 'v[%d] = %s\n' "$i" "${v[i]}"
done
done < file1.txt
知っておくべきこと最後のフィールドが空の場合はスキップします。。