#!/bin/sh
while read line
do
if [ "$line" != "" ];then
ifileline=`echo $line|awk -F ':' '{print $1}'`
echo $ifileline
fi
done < $1
读取处理一个3M左右的文件非常的费时间,请问如何解析处理稍大文件的每一行?
#!/bin/sh
while read line
do
if [ "$line" != "" ];then
ifileline=`echo $line|awk -F ':' '{print $1}'`
echo $ifileline
fi
done < $1
把你整个while循环改成这一句话:
awk -F':' '!/^$/{print $1}' $1
如果不判断空行的话,用这个也行:
cut -d':' -f1 file
性能低的原因是,你在while循环里面不停的调用awk,文件有多少行,就好调用多少次,浪费了太多系统资源。
请给出部分原始文本,并说清楚你希望如何处理。
一般来说,一个awk命令就足够了。
文件内容是很多软件包的信息(每个包信息以空行分割),格式如下
Pakage:name
version:123
size:456
依赖关系等信息。
我想提取指定软件包名的信息,若匹配了name则将其下信息提取出,一个awk能够吗?
文件内容是很多软件包的信息(每个包信息以空行分割),格式如下
Pakage:name
version:123
size:456
依赖关系等信息。
我想提取指定软件包名的信息,若匹配了name则将其下信息提取出,一个awk能够吗?
[root@rhel6 tmp]# cat urfile
Pakage: name
version: 123
size: 456
Pakage: csdn1
version: 123
size: 456
Pakage: csdn2
version: 123
size: 456
[root@rhel6 tmp]# awk -v RS= '/Pakage: name/' urfile
Pakage: name
version: 123
size: 456
vim /etc/resolve.conf查看dns6.shell脚本命令1.diffdiff file file 比较两个文件的不同 -c 显示周围的行 -u 按照一格式统一输出生成补丁 -r 比较两个目录中文件的不同pattch file fi...
grep 文本过滤命令sed 行编辑器awk 报告生成器一、grep命令grep 匹配条件 处理文件-a 不要忽略二进制数据。 -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b 在显示...
shell脚本对文件的处理
介绍linux下一些常见的文本处理工具,这些工具提高文本处理的工作效率,并且,管道让不同的工具协同工作,jianzhi
转自:https://blog.csdn.net/panda_bear/article/details/8058259 最近在项目中,需要用到shell脚本来解析xml文件。在网上搜了一下,发现有xmlsh等可以用,但是都需要下载安装,使用比较麻烦,后来经过查找在...
cat device.csv |awk -F ',' '{ if(($3=="BDW1459")||($3=="BTR2026")||($3=="HKT1778")||($3=="HSH0292")||($3=="LCB2041")||($3=="MNC0433")||($3=="NFP2441")||($3=="TJM0328")) print $0 }'
根据要求编写shell脚本: (1)利用for循环将指定源目录srcdir下的.c文件移动到指定目的目录destdir下; (2)将目录destdir下的文件,按照文件大小排序,显示移动后指定目录内容; (3)将指定目录中文件大小...
linux shell 中文件的操作
1、请问如何从一个关键字文本集合里用grep批量筛选另一个文本?grep -f seed.txt file.txt grep -vf seed.txt file.txt 可扩展:#!/bin/bash for file in ~/zjx/order_succ/* do filename=$(basename $file) ...
``` cd \txt filelist=`ls` for file in $filelist ...如上面代码所示:功能需求是将该目录下所有文件进行cat uniq操作之后保存回该文件,我使用了temp.txt,不知道有没有可以直接写回文件的命令?请指导!
read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中。 利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本。 当文件没有可读的行时,read命令将以非零状态...
最近参加一个mining challenge,需要从csv文件中读取repo和文件信息,然后使用git指令获得文件的更新日志。查下来git指令最方便也要在terminal中使用,就现学了一点shell语法。 while read line do OLD_IFS="...
linux下shell脚本实现文件的批量处理说明:1、shell文件创建2、文件编辑注意:3、执行shell文件4、停止正在执行shell文件 说明: 在使用linux虚拟机处理数据的过程中,由于需要处理的文件量较大,并且有大量重复的...
学会用shell分析日志只要一上午!!! 很多地方分享了日志分析的shell脚本,但是基本没说每个命令符的具体含义,学习成本还是很高,在这里总结下,方便大家快速入门。 1、在Windows下的用户要使用shell命令符的话...
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法。 调用sed命令有两种形式: sed [options] 'command...
linux shell 读文件按行处理 一种方式是用 cat和反引号 ps:反引号在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。 一种是用管道或者重定向 ' | '表示管道连接...
最近项目中,文件内容有点多,想删除一部分的数据,如文件有1000行,想保留600行(仅用来举例,实际需求更复杂些),该怎么办呢? 不如把文件切开来,想到用 split 试试 split [-bl] file [prefix] 参数说明: -b...
Shell 介绍 shell是一个用c语言编写的程序,他被称为用户使用linux的桥梁 shell即是一种命令语言,又是一种程序语言 shell脚本是一种为shell编写的脚本程序 Shell运行环境和运行方式 shell编程和java,...
Shell脚本 shell:是命令解释器 shell的种类:sh、ksh、csh、bash(区别:功能不一样) 查看当前系统支持的shell类型:cat /etc/shells 查看当前使用shell:echo $SHELL 用户添加:sudo useradd [参数] 名字 -s ...
有时候需要在Shell环境下处理json文件,这时使用jq命令非常方便。 安装 CentOS下可以直接通过yum安装: yum install jq -y 使用方法 假设有一个名为test.json的文件,内容如下: { "Summary": { "Version":...
Shell脚本读取配置文件 这里参考了下面这篇博客 https://blog.csdn.net/liubeck/article/details/7497156 不过按照上面的代码我的无法正确运行,又去查了半天才搞明白里面的问题。 配置文件为myconfig.ini ...
Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: [root@mini05 20180930-2]# cat file.info 111 222 333 444 555 666 写法一: [root@mini05 20180930-2]# cat read1.sh #!/bin/bash ######...
假如把tmp文件夹下面的所有后缀为txt的文件移动到,message文件夹中
有时候,我们需要对一些程序的日志文件进行数据分析,如果是我们自己处理和分析的情况下一般是使用程序读取对应日志文件按照对应规则保存到数据库然后再进行分析。 如果我们直接到日志文件进行分析,我们没有办法...
问题: 最近在做一个接口,日志记录接口停用时的数据,当...因为很大,所以想把它切成若干份,每份N行,以便并行处理。 shell现成的工具--split。 语法: split [-bl] file [prefix] 说明: -b, --byt...
3.sed多行文本处理 问题 本案例要求使用sed工具来完成下列任务操作: 修改主机名配置文件 修改hosts文件,添加两条映射记录:192.168.4.5 与 svr5.tarena.com、svr5,还有119.75.217.56与www.baidu.com 方案 sed...
最近写脚本处理文本文件最后一行换行符的数据做简单总结 1、将文件file.txt最后一行有换行符的数据追加到一个临时文件temp.txt中(这里可以直接处理掉最后一行的换行符,只把内容追加 到temp.txt文件中) tail -n1...
一、使用${} ${var##*/} 该命令的作用是去掉变量var从左边算起的最后一个’/‘字符及其左边的内容,返回从左边算起的最后一个’/’(不含该字符)的右边的内容。使用例子及结果如下: ${var##*.} ...
#!/bin/sh path=aaa/bbb for file in `ls $path` do echo $file perl -pi -e 's|a/b/|replace_text|g' $...在当前路径下的:aaa/bbb文件夹下的文件中,搜索"a/b",并替换为:“replace_text"。 ...
shell脚本实现文件改名小操作, 在此做一记录. #!/bin/bash #将数据文件.SAC名改为'<sta>.[N/E/Z].SAC' #例如2014.143.20.49.21.0000.YN.BAS.00.BHE.M.SAC改为BAS.E.SAC cd ../Data for FILE in ./*...