linux文本处理三剑客:
grep ==擅长过滤,把想要的或者不想要的分离开。linux三剑客 老三 -A: 除了显示匹配的一行之外,并显示该行之前的num行;-B:除了显示匹配的一行之外,并显示该行之后的num行;-C:除了显示匹配的一行之外,并显示该行之前后各num行
sed==擅长取行、替换。三剑客老二 ①过滤:sed -n’/过滤的内容/处理的命令’ 文件,-n 取消sed的默认输出。-i:改变文件内容。其中处理的命令:p:print打印,d:delete删除。例子:sed ‘/oldboy/d’ test.txt;sed -n’/oldboy/p’ test.txt sed替换:sed -i ‘s#oldboy#oldgirl#g’a.txt s常说的查找并替换,用一个字符串替换成另一个 ;g与s联合使用时,表示对当前行全局匹配替换(与下一个g意义不同) -i 修改文件内容 , #是分隔符,可以用、@等替换
awk==三剑客老大。一门语言,过滤内容(擅长取列) awk -F”分隔符号“‘{print $1}’ 文件 <==$第一列,$2第二列,$NF最后一列$(FN-1)倒数第二列例:①[root@TRY1 ~]# awk ‘{print $1}’ awk.txt ② awk ‘{if(NR<31 && NR>19) printf $1″\n”}’ test.txt 输出打印20-30的第一列;NR代表行号,&&(and)并且 \n回车换行
正则表达式及文本处理练习题:
显示/etc/meminfo文件中以大小s开头的行
grep ^[sS] /proc/meminfo
显示用户rpc默认的shell程序。
grep “^rpc\>” /etc/passwd | cut -d : -f7
找出/etc/passwd/中的两位或三位数。
grep -o “\<[0-9]\{2,3\}\>” /etc/passwd
利用df和grep,取出磁盘各分区利用率,并从大到小排序
df |grep ^/dev/sd |grep -o “\b[[:digit:]]\{1,3\}\b%”|sort -rn
显示三个用户root、mage、wang的UID和默认shell。
grep -e “^root\>” -e “^mage\>” -e “^wang\>” /etc/passwd | cut -d: -f3,7
egrep “^(mage|root|wang)\>” /etc/passwd | cut -d: -f3,7
找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行。
将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前面
echo “welcome to magedu linux” |tr -d ” ” |egrep -o [[:alnum:]] |sort|uniq -c|sort -nr
原创文章,作者:15893442518,如若转载,请注明出处:http://www.178linux.com/82921