在处理文本方面,awk和sed简直无以伦比,你可以把一些windows下的文本处理工作放到linux下来处理
下面这条命令把一个文本的前5列打印出来,每一列的记录用分号隔开;最后打印出前12000行。
1.处理列
cat cpuusg |awk '{print $1";" $2";" $3";" $4";" $5}' |sed -n '1,12000p' >>cpuusg2-1.txt
2.文本替换
sed "/outfile =/ s;.*;$rep;" /home/zhxue/qryjason101.pro > zhxue1$fileName;
/***/表示需要替换的内容, s表示替换, .*表示替换该内容所在行的所有东西, ;表示分隔符, $rep表示用这个变量所代表的内容替换文本,.pro文件表示需要查找的文本文件,zhxue$filename表示将替换结果输出到的文件。
3.读取某个文件的某一行或者某几行
查看文件song.txt的第190行到196行,
sed -n '190,196p' song.txt
如果查看某一行用
sed -n '190,1p' song.txt即可
sed -n 'a,bp' song.txt读取自第a行到第b行的数据
if(a > b ) return 第a行
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/6_system/linux/Linuxjs/20090520/167457.html
3. 关于linux vi命令替换的使用说明
http://os.51cto.com/art/200907/140987.htm
4.截取字符串
http://space.itpub.net/12932950/viewspace-586873
#!/bin/bash
EXCLAIM=cowabunga
echo ${EXCLAIM:0:3}
echo ${EXCLAIM:3:2} #从第三个字符开始取两个。