读文档name.txt 的第二列,然后使用while循环实现数组遍历shell
时间: 2024-02-03 17:13:13 浏览: 29
假设name.txt的内容如下:
```
John 28
Mary 25
Tom 30
```
可以使用以下命令读取第二列:
```
cut -d ' ' -f 2 name.txt
```
其中,-d表示分隔符,这里使用空格作为分隔符;-f表示要提取的字段,这里提取第二个字段。
接下来,使用while循环遍历提取出的数据:
```
#!/bin/bash
# 读取第二列数据
ages=$(cut -d ' ' -f 2 name.txt)
# 将数据转化为数组
age_array=($ages)
# 遍历数组
index=0
while [ $index -lt ${#age_array[*]} ]
do
echo ${age_array[$index]}
index=`expr $index + 1`
done
```
其中,${#age_array[*]} 表示数组元素个数。
相关问题
shell 读文档name.txt 的第二列,然后使用while循环实现数组遍历。
假设name.txt文件中每一行都包含两列数据,第一列是编号,第二列是名称。可以使用以下shell脚本实现读取第二列数据并遍历:
```shell
#!/bin/bash
# 读取文档name.txt的第二列数据
names=$(cut -f 2 name.txt)
# 将names字符串按照空格分隔成数组
names_array=($names)
# 遍历数组
for name in "${names_array[@]}"
do
echo "名称:$name"
done
```
上述脚本首先使用cut命令读取name.txt文件的第二列数据,并将结果保存在names变量中。接着,利用空格将names字符串分隔成数组,存储到names_array变量中。最后,使用for循环遍历数组,输出每个名称。
shell编程读文档name.txt 的第二列,然后使用while循环实现数组遍历
假设name.txt的内容如下:
```
Tom 18
Jerry 20
Mickey 25
```
可以使用以下shell脚本读取第二列并遍历:
```shell
#!/bin/bash
# 读取第二列并存入数组
ages=($(awk '{print $2}' name.txt))
# 遍历数组
i=0
while [ $i -lt ${#ages[@]} ]
do
echo "age[$i]: ${ages[$i]}"
i=$(($i+1))
done
```
输出结果为:
```
age[0]: 18
age[1]: 20
age[2]: 25
```
解释一下脚本的实现过程:
1. 使用awk命令读取name.txt文件中的第二列,将结果存入ages数组中。
2. 使用while循环遍历ages数组,输出每个元素的值。其中,`${#ages[@]}`表示数组的长度,`$(($i+1))`表示将变量`$i`加1。