仓酷云

标题: 给大家带来Shell 文本处置东西集锦 [打印本页]

作者: 灵魂腐蚀    时间: 2015-1-14 20:17
标题: 给大家带来Shell 文本处置工具集锦
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!本文将先容Linux下利用Shell处置文本时最经常使用的工具:
find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;
供应的例子和参数都是最经常使用和最为有用的;
我对shell剧本利用的准绳是下令单行誊写,只管不要凌驾2行;
假如有更加庞大的义务需求,仍是思索python吧;

find文件查找

定制搜刮

找到后的后续举措

-print的定界符

默许利用
作为文件的定界符;
-print0利用作为文件的定界符,如许就能够搜刮包括空格的文件;

grep文本搜刮

grepmatch_pattenfile//默许会见婚配行
xargs下令行参数转换

xargs可以将输出数据转化为特天命令的下令行参数;如许,能够共同良多下令来组合利用。好比grep,好比find;
xargs参数申明

-d界说定界符(默许为空格多行的定界符为

-n指定输入为多行
-I{}指定交换字符串,这个字符串在xargs扩大时会被交换失落,用于待实行的下令必要多个参数时
eg:
  1. find.-regex".*(.txt|.pdf)$"7
复制代码
-0:指定为输出定界符
eg:统计步伐行数
  1. find.-regex".*(.txt|.pdf)$"8
复制代码
sort排序

字段申明:
-n按数字举行排序VS-d按字典序举行排序
-r逆序排序
-kN指定按第N列排序
eg:
  1. find.-regex".*(.txt|.pdf)$"9
复制代码
uniq打消反复行

用tr举行转换

cut按列切分文本

paste按列拼接文本

将两个文本按列拼接到一同;
  1. find.-maxdepth1-typef2
复制代码
默许的定界符是制表符,能够用-d指明定界符
pastefile1file2-d","
1,colin
2,book

wc统计行和字符的工具

wc-lfile//统计行数
wc-wfile//统计单词数
wc-cfile//统计字符数

sed文本交换利器

awk数据流处置工具

print打印以后行

特别变量:NRNF$0$1$2

NR:暗示纪录数目,在实行过程当中对应该前行号;
NF:暗示字段数目,在实行历程总对应该前行的字段数;
$0:这个变量包括实行过程当中以后行的文本内容;
$1:第一个字段的文本内容;
$2:第二个字段的文本内容;
  1. find.-typed-print//只列出一切目次5
复制代码
传送内部变量
  1. find.-typed-print//只列出一切目次9
复制代码
用款式对awk处置的行举行过滤

awkNR<5#行号小于5
awkNR==1,NR==4{print}file#行号即是1和4的打印出来
awk/linux/#包括linux文本的行(能够用正则表达式来指定,超等壮大)
awk!/linux/#不包括linux文本的行

设置定界符

利用-F来设置定界符(默许为空格)
awk-F:{print$NF}/etc/passwd

读取下令输入

利用getline,将内部shell下令的输入读进到变量cmdout中;
  1. find.-atime7-typef-print0
复制代码
在awk中利用轮回

for(i=0;i<10;i++){print$i;}
for(iinarray){printarray;}

eg:
以逆序的情势打印行:(tac下令的完成)
  1. find.-atime7-typef-print1
复制代码
awk完成head、tail下令

打印指定列

打印指定文本地区

awk经常使用内建函数

index(string,search_string):前往search_string在string中呈现的地位
sub(regex,replacement_str,string):将正则婚配到的第一处内容交换为replacement_str;
match(regex,string):反省正则表达式是不是可以婚配字符串;
length(string):前往字符串长度
  1. find.-atime7-typef-print9
复制代码
printf相似c言语中的printf,对输入举行格局化
eg:
  1. find.-typef-size+2k0
复制代码
迭代文件中的行、单词和字符

1.迭代文件中的每行

2.迭代一行中的每个单词
  1. find.-typef-size+2k2
复制代码
3.迭代每个字符

${string:start_pos:num_of_chars}:从字符串中提取一个字符;(bash文本切片)
${#word}:前往变量word的长度
  1. find.-typef-size+2k3
复制代码
本文为《linuxShell剧本攻略》的念书条记,文中次要内容和示例来自于
《linuxShell剧本攻略》;



如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者: 只想知道    时间: 2015-1-15 16:04
标题: 给大家带来Shell 文本处置工具集锦
LZ敢整点更有创意的不?兄弟们等着围观捏~
作者: 若天明    时间: 2015-1-25 20:47
熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:
作者: 小魔女    时间: 2015-2-4 13:03
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者: 飘飘悠悠    时间: 2015-2-9 22:54
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。
作者: 爱飞    时间: 2015-2-28 08:32
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
作者: 变相怪杰    时间: 2015-3-10 02:46
熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
作者: 愤怒的大鸟    时间: 2015-3-17 08:10
随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2