bash 实现,文件中存在一行内容,由空格分开成几个字符串,计算一共有多少个字符串
时间: 2024-10-15 18:16:33 浏览: 17
在 Bash 中,你可以使用内置的 `IFS` 变量(Internal Field Separator,内部字段分隔符)以及数组和变量来实现这个功能。假设你想统计名为 "data.txt" 文件中每一行被空格分割出的字符串数,可以按照以下步骤操作:
1. 打开文件并读取每一行:
```bash
while IFS=' ' read -r line; do
```
这里,`IFS=' '` 将空格设为分隔符。
2. 使用 `IFS` 分割当前行,并将结果存储到数组中:
```bash
IFS=',' read -ra words <<< "$line"
```
`read -ra` 会把一行按逗号分割,但这里我们不需要逗号,所以就留着IFS=' '。
3. 计算数组元素的数量(即字符串数量),并打印出来:
```bash
n_words=${#words[@]}
echo "该行有 $n_words 个字符串"
done < data.txt
```
最后,记得关闭循环。完整的脚本可以放在一个函数里,如果你需要多次使用。
运行上面的脚本后,它会在控制台显示每行中字符串的数量。
阅读全文