Linux下Bash脚本实现文件查找循环与内容提取
补充Bash脚本实现文件检查与内容提取功能
需求说明
- 检查用户输入的txt文件名是否存在于当前目录
- 若文件不存在,重复提示用户输入文件名
- 若文件存在,读取文件内容并输出每行冒号左侧的数字
完整脚本代码
#!/bin/bash echo "please input file name with extension (e.g spn.txt)" read filename # 循环检查文件是否存在 while [ ! -f "$filename" ]; do echo "File '$filename' does not exist. Please enter a valid file name:" read filename done # 文件存在时,提取每行冒号左侧的内容并输出 echo "Extracting left part of colon from file:" while IFS=':' read -r left right; do echo "$left" done < "$filename"
关键部分解释
- 文件存在性检查循环:
while [ ! -f "$filename" ]; do ... done会持续判断文件是否存在,! -f表示文件不存在时进入循环,重复提示用户输入正确的文件名。 - 内容提取循环:
while IFS=':' read -r left right; do ... done < "$filename"以冒号:作为分隔符,将每行内容拆分为left(冒号左侧)和right(冒号右侧),然后输出left部分。
内容的提问来源于stack exchange,提问作者Shaikh Ralib
相关产品推荐
相关产品推荐

