我试图将字符串更改为用于数组的索引,但无法使其正常工作。
这是我的档案
$ 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]}"
我还需要在另一个循环中使用动态生成的变量。
不要使用shell循环来处理文本,而要使用文本处理实用程序。
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
请注意,如果最后一个字段为空,则将跳过该字段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句