#!/bin/bash
# 译者:龙力勤
# 最新更新:2009-08-16
# 出自懒人运维:http://www.lazysa.com
# Eamil:longkaty@sina.com
# 用途:文本读取,文本分析
# 描述:shell脚本按行读取文本文件,并对读取的行进行分析 # 更多关于此脚本的讨论,请参考:http://www.lazysa.com/2009/08/779.html
# 用法:./readline myfile.txt
# User define Function (UDF)
processLine(){
line="$@"
# get all args
# just echo them, but you may need to customize it according to your need
# for example, F1 will store first field of $line, see readline2 script # for more examples
# F1=$(echo $line | awk '{ print $1 }')
echo $line }
### Main script stars here
### # Store file name
FILE=""
# Make sure we get file name as command line argument
# Else read it from standard input device
if [ "$1" == "" ]; then
FILE="/dev/stdin"
else
FILE="$1"
# make sure file exist and readable
if [ ! -f $FILE ]; then
echo "$FILE : does not exists"
exit 1
elif [ ! -r $FILE ]; then
echo "$FILE: can not read"
exit 2
fi
fi
# read $FILE using the file descriptors
# Set loop separator to end of line
BAKIFS=$IFS
IFS=$(echo -en "nb")
exec 3<&0
exec 0<$FILE
while read line
do
# use $line variable to process line in processLine() function
processLine $line
done
exec 0<&3
# restore $IFS which was used to determine what the field separators are
IFS=$BAKIFS
exit 0
第二种方法:
今天要用shell脚本读取一个配置文件,配置文件的格式如下:
name=abc
pwd=123456
permission=mop
文件名称为 config.cfg
要在shell脚本里读取这个配置文件,并且把值一一赋给相应的变量,实现如下
while read line; do name=`echo $line|awk -F '=' '{print $1}'` value=`echo $line|awk -F '=' '{print $2}'` case $name in "name")
name=$value;;"pwd")
pwd=$value;;"permission")
permission=$value;;*)
;;esac done < config.cfg重点的解释一下
1. while read line; do
done < config.cfg
按行读到变量 line 中
2. name=`echo $line|awk -F '=' '{print $1}'`
awk 命令是把一个字符串进行解析成一个数组, -F指定了 间隔符为 “=” , $1代表数组下标为0的字符串,即name值
$0代表字符串本身,这个要注意。
分享到:
相关推荐
主要介绍了Shell脚本逐行读取文本文件,本文着重探讨不改变文本格式的方法读取出文件内容,需要的朋友可以参考下
如何在Shell脚本中逐行读取文件.doc
Linux 系统 shell脚本读取配置文件
最近,在从事开发工作的过程中,遇到了一个需求:用shell脚本实现对配置文件的读取,并将读取到的配置项写入到新的文件中。为了完成该需求,我们考虑使用awk命令,该命令把文件中的内容逐行的读入,按照特定的规则对...
本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、使用for循环 for line in `cat filename` do echo $line done ...
您可能感兴趣的文章:PowerShell读取文本文件指定行内容的方法PowerShell比较文本文件的两个方法Shell脚本逐行读取文本文件(不改变文本格式)Powershell实现加密解密文本文件方法实例shell文件处理笔记之插入文
主要介绍了Shell脚本一次读取文件中一行的2种写法,本文还同时讲解了Shell读取文本文件的2种方法,需要的朋友可以参考下
shell脚本可配置化读取文件夹中文件名称,亲身整理。。
使用一般的mysql命令或者是sql脚本都可以插入数据到mysql数据表中,我这里介绍如何是Shell批量的从CSV文件中添加数据到mysql数据库中,方便数据迁徙,测试数据的添加之类的工作。
主要介绍了shell按行读取文件的3种方法,需要的朋友可以参考下
用pandas读取excel数据,并把数据分组保存在txt文件里,自动生成shell脚本,把window的格式转换为unix格式可直接拖到linux执行shell脚本
主要内容包括如何使小到中型的系统管理任务自动化,分析系统数据并编辑配置文件,使用bash和ksh等编写IAnux、Unix和OSX应用程序的脚本文件等。 《Shell脚本专家指南》面向中高级的shell程序员,以及需要解决日常问题...
jq 允许你直接在命令行下对 JSON 进行操作,包括分片、过滤、转换等等。 让我们通过几个例子来说明 jq 的功能: 一、输出格式化,漂亮的打印效果 如果我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,但是...
今天小编就为大家分享一篇关于Shell脚本从文件中逐行读取内容的几种方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
shell脚本按时间条件导出表数据,并读取文件字节数、文件大小、文件生成时间、压缩导出文件、上传指定ftp目录
shell脚本修改json中某个字段的值 - 思路:通过awk来找到旧数据,然后用sed来替换旧数据
shell脚本一个读写sd卡的案例,这个例子可以帮助出学者进步了解shell编程
oracle数据库空间告警:通过shell脚本+钉钉告警实现,100行代码。配合定时任务方便快捷,不需要臃肿的客户端。完全适用小公司的监控告警。没必要使用zabbix等。