shell补-特殊玩法-shell脚本中读取文件内容
shell补-特殊玩法-shell脚本中读取文件内容
- 通过shell脚本读取文件内容然后处理
- 这些三剑客无法独立完成
# 方式1: 采用exec读取文件后,然后进入while循环处理
exec<FILE
while read line##line是变量
do
cmd #语句
done
#方式2:使用cat读取文件内容,然后通过管道进入while循环处理;注意因为有管道符涉及开启子shell了。
cat FILE|while read line
do
cmd
done
###方式3: 在while循环结尾通过done通过输入重定向指定读取的文件。推荐使用
while read line
do
cmd
done<FILE
- 通过while read 读取文件内容
注意read读取文件内容, 默认通过空格分隔每个列(域,字段)
修改分隔符需要修改IFS
[root@localhost readline]# cat testread.sh
#!/bin/bash
##############################################
# File Name:testread.sh
# Version:v1.0
# Author:mrxu
# Organization:https://www.cnblogs.com/xjianbing/
##############################################
echo "-----------用exec加whil----------------"
exec<./myfile.txt
while read var
do
echo $var
echo
done
echo "-----------用cat加管道符----------------"
cat ./myfile.txt |while read var
do
echo $var
echo
done
echo "-----------用while结尾重定向推荐----------------"
while read var
do
echo $var
echo
done<./myfile.txt
echo "----------处理保留小号----------------"
while read var
do
echo ${var%% *}
echo
done<./myfile.txt
echo "----------处理保留大号----------------"
while read var
do
echo ${var:3:2}
echo
done<./myfile.txt
echo "----------处理保留大号使用awk---------------"
while read var
do
echo ${var}|awk '{print $2 }'
echo
done<./myfile.txt
echo "----------处理保留名称----------------"
while read var
do
echo ${var##* }
echo
done<./myfile.txt
[root@localhost readline]# bash testread.sh
-----------用exec加whil----------------
18 28 nc
12 21 yb
-----------用cat加管道符----------------
18 28 nc
12 21 yb
-----------用while结尾重定向推荐----------------
18 28 nc
12 21 yb
----------处理保留小号----------------
18
12
----------处理保留大号----------------
28
21
----------处理保留大号使用awk---------------
28
21
----------处理保留名称----------------
nc
yb
[root@localhost readline]#
注意:bash 用-x参数可查看执行过程
分类:
shell实战2查漏补缺
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!