1. 编写shell脚本实现提取文件中的第1000-2000行数据
for((i=1000;i<=2000;i++))
do
x=${i}"p"
cat f1|sed -n "$x" >>f2
done
cat f2
这里默认认为一条数据一行,从文件f1的第1000行开始逐行读取然后写到新的文件f2中
2. tcl 脚本中如何读取txt文件内容总行数后作为变量使用
首先指出一个BUG," close $b "应该放在
while {[gets $f line ] != -1 } {
...
close $b
}
否则会资源泄露。
文件b的从行数可以统计换行符获得。不知道你想要统计文件b的行数替代什么? 我的意思是,从你的程序中看不出为什么要统计b的从行数。当if {[regexp $line $line2]} 条件始终不成立时,flag的值正好是b的总行数。
3. 用shell写一个脚本,用来统计日志总行数
单个文件统计:
$ zcat OF25_2016-10-26-211731.log.zip | wc -l
一天的所有文件统计:
$ zcat OF25_2016-10-26-*.log.zip | wc -l
使用参数的shell
#/bin/sh
zcat $1_$2-*.log.zip | wc -l
4. 求python文本分析脚本,读取、显示、计数匹配条件行数。
日志文件0724.log:
+Python2.5.2(r252:60911,Feb212008,13:11:45)[MSCv.131032bit(Intel)]onwin32
-Type"right","credits"or"license()"formoreinformation.
+****************************************************************
-IDLE1.2.2====NoSubprocess====
代码如下:
file_name='./0724.log'
stat={'+':0,'-':0}
cont={'+':'','-':''}
f=open(file_name)
forlineinf:
ifline[0]in['+','-']:
stat[line[0]]+=1
cont[line[0]]+=line[1:]
print('+:'+str(stat['+']))
print(str(cont['+']))
print('-:'+str(stat['-']))
print(str(cont['-']))
结果:
>>>
+:2
Python2.5.2(r252:60911,Feb212008,13:11:45)[MSCv.131032bit(Intel)]onwin32
****************************************************************
-:2
Type"right","credits"or"license()"formoreinformation.
IDLE1.2.2====NoSubprocess====
5. 在Ubuntu下编写shell脚本读取文件
需求功能:
创建测试用例文件 text :
创建shell脚本:
运行结果:
利用 awk 'END{print NR}' [文件名] 来输出行数:
在shell脚本中添加该功能:
运行结果:
上面的shell文件只是把文件名写死在脚本中,并没有实际使用意义,所以需要编写一个指令来指定需要读取的文件,就像 vim [文件名] 一样
“$1” 代表第1个参数,也就是在 read 之后紧跟的参数,将其作为文件名传入:
将脚本移动至环境变量对应的目录中:(可以自己更改 /bin/xxx 来决定运行命令的名称,但注意不能重复)
sudo mv read /bin/read
然后添加运行权限:
sudo chmod 755 /bin/read
打开终端的目录可以是任何位置,通过以下命令即可运行shell脚本:
sudo read [文件路径]
同理,我们还可以自己为复杂指令编写shell脚本,来提高命令的使用效率,例如开关ss服务,打开锐捷客户端认证等等。