Shell--脚本中如何通过while或for两种方式实现读写文件操作【工作笔记】

举报
吾日三省贾斯汀 发表于 2021/09/11 01:12:20 2021/09/11
【摘要】 哈喽,大家好,我是贾斯汀,欢迎又来学习啦~ 【学习背景】 本文主要介绍Shell脚本中如何通过while和for两种循环方式,实现按行读写文件,分享出来,希望能对您有所帮助~ ...
哈喽,大家好,我是贾斯汀,欢迎又来学习啦~


【学习背景】

本文主要介绍Shell脚本中如何通过while和for两种循环方式,实现按行读写文件,分享出来,希望能对您有所帮助~

进入正文~

一、while方式

(1)创建读文件while_read.log
示例内容:

1
2
3
哈哈哈
秀儿
是你吗?
666

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(2)创建while.sh脚本
示例内容:

#!/bin/sh
#定义要读取的文件
readfile=/home/mysql/sh/while_read.log
#定义要写入的文件
writefile=/home/mysql/sh/while_write.log

#while循环方式实现读写
while read line
do
  if  [ ! -f $writefile ] ;then
    touch $writefile #不存在写入文件则创建
  fi
  echo $line >>${writefile} #将读到的行写入文件
done <${readfile} #从文件中按行读取

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

(3)执行while.sh脚本

/bin/sh while.sh

  
 
  • 1

(4)检查文件

cat while_write.log

  
 
  • 1

在这里插入图片描述

二、for方式

(1)同样创建读文件for_read.log
示例内容:

1
2
3
哈哈哈
秀儿
是你吗?
666

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(2)创建for.sh脚本
示例内容:

#!/bin/sh
#定义要读取的文件
readfile=/home/mysql/sh/for_read.log
#定义要写入的文件
writefile=/home/mysql/sh/for_write.log

#for循环方式实现读写
for line in $(cat $readfile)
do
  echo $line >> ${writefile}
done

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(3)执行for.sh脚本

/bin/sh for.sh

  
 
  • 1

(4)检查文件

cat for_write.log

  
 
  • 1

在这里插入图片描述

工作笔记,分享出来,希望对您有所帮助~

文章来源: blog.csdn.net,作者:吾日三省贾斯汀,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/JustinQin/article/details/120220404

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。