当前位置:首页 > 日记 > 正文

Linux文本处理工具包

Linux文本处理工具包
点评:Linux的操作习惯与Windows有一个窗口进行操作,它是一个很大的不同,本文将介绍最常用的文字处理工具,使用Linux下的shell:发现,grep,xargs,排序,uniq,TR,剪切,粘贴,WC,sed,awk
所提供的示例和参数是最常用和最实用的。
我使用shell脚本的原则是命令一行文字,尽量不要超过2行。
如果有更复杂的任务需求,请考虑Python。

查找文件查找

查找txt和PDF文件

复制代码如下:查找。(名称*O---打印
按常规方式查找txt和PDF
将代码复制如下:查找。-正则表达式,( .txt | .pdf )

- iregex:忽视案件的典型规律
阴性参数
查找所有非TXT文本

复制代码如下:查找。-名称*-打印
指定搜索深度
打印当前目录的文件(深度1)

复制代码如下:查找。-maxdepth 1 F型
自定义搜索
公牛;按类型搜索:
将代码复制如下:查找。类型D打印只列出所有目录

类型F文件符号链接
牛市;按时间搜索:
-时间访问时间(单位为天,分单元-阿明,以下是类似的)
影评:修改时间(内容修改)
- ctime改变时间(元数据或权限的变化)

过去7天中所访问的所有文件:

复制代码如下:查找。- 7 - F型打印时间

公牛;按大小搜索:
K M G
寻找大于2K的文件
复制代码如下:查找。型F尺寸+ 2K

经许可查阅:
将代码复制如下:查找。-类型F -烫发644 -打印查找所有文件的可执行文件权限

由用户查找:
复制代码如下:查找。-类型F -用户韦伯打印查找用户Weber拥有的文件

发现后随访

删除:

删除当前目录中的所有程序文件:
复制代码如下:查找。- F型名称*。SWP-删除

多头;执行(强力执行)
将代码复制如下:查找。- F型用户根-exec chown韦伯{} ; / /当前目录更改到Weber的所有权

注意:{ }对于每个匹配的文档都是一个特殊的字符串,{将用相应的文件名替换;
Eg:你找到的所有文件都复制到另一个目录:
将代码复制如下:查找。型F时间+ 10名*. txt-exec CP老{} ;

多头;结合多个命令
提示:如果需要跟踪多个命令,可以将多个命令写入脚本;
复制代码如下:-exec。 / commands.sh {} ;

打印分隔符
使用默认的文件;作为分隔符;
- print0 rsquo; 0prime;文件作为分隔符,所以你可以搜索文件包含空格;

grep搜索文本
grep match_patten文件 / /默认接入线

普通参数
o只输出匹配的文本行VS,以输出不匹配的文本行。
C统计文件中包含的文本数
复制代码如下:grep -C文本文件名

n打印匹配的行号
-我搜索忽略案例和案例
l只打印文件名
递归地在多级目录中搜索文本(最喜欢程序员的代码搜索):
复制代码如下:grep类。- R - N

多头;匹配多种模式
复制代码如下:grep -E类-虚拟文件

公牛;grep输出 0文件名作为文件结束:(Z)
复制代码代码如下:grep测试文件* LZ | xargs - 0室

xargs命令行参数转换

xargs可以将数据输入到一个特定的命令行参数;这样,它可以用在许多命令的组合。例如,grep,如发现;

公牛;多路输出转换为单一线路输出
txt文件| xargs猫。
是多行文本分隔符。
公牛;变换成多行输出一行
猫single.txt xargs -n 3 |
N:指定每行显示的字段数
xargs参数描述
- d定义分隔符(用于更多空间的默认分隔符))
n指定多行输出。
我{ }替换指定的字符串,字符串将在xargs命令的扩展更换,需要多个参数
如:
复制代码如下:猫file.txt xargs -我 / command.sh P | { } { } 1

- 0:指定 0输入定界符
Eg:统计程序行
复制代码如下:找到source_dir / F型名称*。CPP print0 | xargs 0 WC L

排序排序

字段描述:
n排序与三维数字按字典顺序
r的逆阶
- k指定列n的秩。
如:
复制代码代码如下所示:
排序NRK 1 data.txt
排序- BD数据忽略,如前导空格或其他字符
uniq消除重复
消除重复
复制代码如下:排序unsort.txt uniq |

计算文件中的次数。
复制代码如下:unsort.txt uniq -c |排序

发现重复的
复制代码如下:排序unsort.txt uniq -d |

您可以指定一个需要在每一行进行比较的重复内容:s开始位置W比较字符数
转换与TR

公牛;一般用法
复制代码代码如下所示:
回声12345 TR '0-9'9876543210 ' / / |加密转换,更换相应的字符
猫的文字| TR T / /标签空间
删除字符
Copy the code as follows: cat file tr -d'0-9'| / / remove all digital

C-补集
复制代码代码如下所示:
猫的| TR C文件'0-9 / /让所有的数字文件
猫档TR - D - C '0-9 | / /删除非数字数据
字符压缩字符
压缩文本中的重复字符;最常用于压缩冗余空间。
复制代码如下:猫的| TR -文件

字符类

在TR中可以使用多种字符类:
Alnum:字母和数字
甲:信
数字:数字
空格:空白字符
下:小写
上:大写
控制:控制(非打印字符)
打印:可打印字符
使用方法::类:}:类:}
将代码复制为以下内容::

按列剪切文本
截取文件的第二列和第四列:

复制代码代码如下:割f2,4文件名
除了文件以外,转到第三列的所有列:

复制代码如下:剪切F3 -补充文件名
指定指定分隔符:

复制代码代码如下:猫D;文件名。
公牛;切割范围
n到最后的n个字段
m的第一个域是m
·m n m领域
公牛;被砍的单位
以字节为单位
C是单位中的一个字符。
F在现场单元(使用文本)

公牛:
复制代码代码如下所示:
切割文件 / / C 1-5打印的前5个字符
割C-2文件 / /打印的前2个字符
按列粘贴文本粘贴
在列中拼接两个文本;
复制代码代码如下所示:
猫file1



猫file2
柯林


粘贴file1 file2
1柯林
2本书
默认分隔符是一个选项卡,可以使用d指定分隔符。
粘贴file1 file2 D ;
1、柯林
2、本书

统计线和字符工具
文件编号
统计文件的数量
统计文件的字符数

文本替换工具
公牛;首先替换
复制代码如下:赛格的 / / / replace_text文本文件 / /替换每一行的第一个匹配的文本

全球替代
复制代码代码如下:赛格的 / / / g'file replace_text文本

在默认替换后,输出替换内容,如果您需要直接替换原始文件,使用i:

复制代码如下:赛格-我的 / / / g'file repalce_text文本
删除空白行:

复制代码代码如下:SED的 / / d'file ^美元
变量变换
匹配的字符串通过标记引用。
复制代码代码如下所示:
回声这是恩例赛格的 / / W + {和} / G |;
$ { {此} { } }为示例}
牛子串匹配的标记;
使用标记 1引用第一个匹配的括号内容。

复制代码如下:SED的 /你好({ 0-9 } ) / 1
牛市;双引号评估
SED通常用单引号引用,也可以使用双引号,双引号用于在使用双引号后对表达式进行计算:
复制代码代码如下:SED的 / / / hlloe VaR美元

当使用双引号时,我们可以在SED样式和替换字符串中指定变量。
复制代码代码如下所示:
如:
P =模式
R =取代
回声线控制S / P / R / G SED美元模式|
美元;线替换
公牛;其他例子
字符串插入字符:将文本的每一行(佩克沙河)文本中的北京 /沙

复制代码如下:SED的 / ^。
3
} { /放大器; / / g'file

awk的流数据处理工具

公牛;awk脚本结构

awk ‘开始{语句} { } '最后陈述语句2;

公牛;工作方式

1。开始执行语句块;
2。读取一个文件或标准输入的一行,然后执行语句2,重复这个过程,直到所有的文件被读取;
三.执行结束语句块;

打印当前行

当使用无参数打印时,当前行将被打印;

复制代码如下:回声E线2| awk'begin {打印开始} } { {结束打印打印}结束
当打印用逗号分隔时,参数由空格来限定;
复制代码代码如下所示:
回声|的awk { var1 =V1;VAR2 =V2;var3 = V3;
打印var1,var2,var3;}
$ gt;V2 V2 V3
使用连接的方式;
复制代码代码如下所示:
回声|的awk { var1 =V1;VAR2 =V2;var3 = V3;
打印var1 var2 var3 };
美元v1-v2-v3 gt;
特殊变量:NR NF 0美元1美元2美元

NR:表示记录的数量,并与执行期间的当前行数相对应。
NF:表示在执行过程中应该包含的字段数和字段数;
$ 0:这个变量包含执行过程中当前行的文本内容;
第一字段的文本内容为1美元:;
第二个字段的文本内容为2美元:;
复制代码如下:回声E线F2 F3 2 线awk {打印NR 3| 0元,1元2美元}

为每行打印第二个和第三个字段:

复制代码如下:awk {打印2美元、3美元}文件
统计文件的数量:

复制代码代码如下:awk端{ }的文件打印NR
公牛;每一排的第一个场地:
复制代码代码如下所示:
回声e 12 3 4 | awk'begin {数= 0;
打印开始};{ + = 1美元;结束{打印;} 打印总和}
转移的外部变量
复制代码代码如下所示:
var = 1000
回声awk {打印内翻} 'vara = $ VaR | #从stdin输入
awk {打印内翻} 'vara = $ var文件#从输入文件
过滤的awk样式加工线

awk ‘NR小于5prime;#线数小于5
awk ‘NR = = 4 } {打印' NR = = 1;文件,#行数等于打印出1和4
awk ‘ / /我的Linux Linux;#包含多行文本(可以使用正则表达式来指定,超强)
awk ‘ / /我# Linux Linux!不包含行的文本。

设置分隔符
使用f设置分隔符(默认空格)
awk -F:‘{ print $ NF }我 / /密码等;

读命令的输出
使用的时候,外壳的命令的输出读入变量cmdout;
复制代码代码如下所示:
回声awk |{grep根/等/口令getline cmdout打印cmdout }的|;
在awk中使用环
对于(i = 0;i < 10;i +);打印$ i;}
对于(i在数组中){打印数组{ };}

如:
以相反的顺序打印行:(TAC命令的实现)
复制代码代码如下所示:
序列9 |
awk { } = { NR后进先出0美元;LNO = NR }
{为结束(;lnogt;1;LNO --){ } { }打印后进先出结构;
}
awk工具头、尾的命令
公牛;头:

复制代码如下:awk'nrlt = 10;} {打印'filename

公牛;尾巴:
复制代码代码如下所示:
awk { { 10 } =缓冲橡胶0美元;} {(i = 0为末;传染性喉气管炎;11;i++){
打印缓冲区{ i 10 } }文件名
打印指定的列
公牛;awk模式的实现:

复制代码如下:ls -lrt awk {打印6美元的| }
剪切模式实现

复制代码如下:LS -轻轨割F6 |
打印指定的文本区域。
确定行号

复制代码如下:以下100 | awk'nr = = 4,NR = = 6 } {打印
确定文本
打印start_pattern和end_pattern之间的文本;
复制代码如下:文件 / / / start_pattern,end_pattern / 'filename

如:

复制代码代码如下所示:
Seq 100 | awk / 13 / / / 15,
猫/ etc / passwd | awk /麦。*邮件 / / / *新闻消息。
awk常用内置函数

指数(字符串,search_string):返回字符串中的位置search_string
子(正则表达式,replacement_str,字符串):取代常规赛第一的内容replacement_str;
匹配(正则表达式、字符串):检查一个正则表达式可以匹配一个字符串;
长度(字符串):返回字符串长度
复制代码如下:回波awk |{grep根/等/ passwd| getline cmdout;打印长度(cmdout)}

printf函数类似于C语言中的printf格式化输出
如:
复制代码如下:以下10 | awk { printf - gt;% 4s ,1美元}

迭代文件中的行、字和字符

1行中的每一行。迭代文件

周期法

复制代码代码如下所示:
读行时;

回波$线;
做file.txt lt;
变成贝壳:
猫file.txt |(读取行;做echo $线;完成)
公牛;awk方法:
猫文件.txt | awk '打印';{ };

2。在一行中迭代每个单词
复制代码代码如下所示:
一字不差;

回声字;
多恩
三.每个字符的迭代
$ {字符串:start_pos:num_of_chars }:从字符串中提取字符;(bash文字片)
$ { #字}:返回可变字长
复制代码代码如下所示:
为(((i = 0;} $ { # ILT;词;i++))

回声$ Word:I:1);
多恩

相关文章

什么是hpwuschd2.exe什么hpwuschd2

什么是hpwuschd2.exe什么hpwuschd2

函数,查询,过程,电脑软件,exe,点评:hpwuschd2.exe是HP惠普软件升级的相关程序 进程文件:hpwuschd2或hpwuschd2.exe 过程名称:休利特帕卡德软件更新调度程序 过程类别:安全风险的过程 英文描述: hpwuschd2.exe过程是属于休利特帕卡德的软件更新…

帮助文件下载

帮助文件下载

下载,帮助文件,电脑软件,如何查询{问}的特殊字符,如通配符和_ % 如何在数据库表中插入单引号 如何设置事务一致性 如何使用游标更新数据 如何自定义异常 {十进制和十六进制转换 {问}可以介绍sys_context的详细用法 { { }如何获得今天的日期,…

我的文档总是在计算机进入系统后自

我的文档总是在计算机进入系统后自

系统,是在,我的文档,电脑软件,问题: 最近几天,我每次开始进入系统,我的文档自动打开并检查启动和预定任务还没有打开我的文件设置是否没有电脑中毒 回答: 可能会中毒,注册表被病毒或特洛伊木马程序修改。请检查注册表以供参考。 开始>运行,在…

nddeagnt是nddeagnt.exe-使用

nddeagnt是nddeagnt.exe-使用

电脑软件,nddeagnt,exe,点评:nddeagnt.exe是网络动态数据交换代理的一部分,是用来管理网络DDE服务 进程文件:nddeagnt或nddeagnt.exe 过程名称:网络动态数据交换代理 过程类别:安全风险的过程 英文描述: nddeagnt.exe使用的网络动态数据交换剂…

就在consol32.exe过程危险吗过程co

就在consol32.exe过程危险吗过程co

危险,就在,过程,电脑软件,exe,点评:consol32.exe是trojandownloader。Win32。短。C病毒下载器程序,程序将下载病毒到你的计算机 进程文件:consol32或consol32.exe 进程名称:W32。拉密顿G木马。 过程类别:安全风险的过程 英文描述: consol32.exe…

如何删除win8右右下角的系统版本水

如何删除win8右右下角的系统版本水

系统版本,删除,水印,溶液,右下角,问题: 在桌面上显示版本水印,右下角的Win8.1系统看起来不美观、不舒服,如何摆脱它 答案uff1a Win8系统版本的水印去掉,参考方法: 需要安装一个水印去除水印软件mywcp编辑我的wcpwatermark编辑器,以管理员身份…

新手的LinuxVPS必须知道十点

新手的LinuxVPS必须知道十点

十点,新手,电脑软件,LinuxVPS,新手的Linux VPS必须知道十点 作者:guanghuivps 10:55:00 |提交日期:2010-5-19分类:guanghuivps |访问:139 刚刚使用Linux VPS的朋友需要知道一些基本的知识,Linux不是那么神秘,太深奥以至于无法理解, 这只是一个简…

对prismsta.exe-使用prismsta是什

对prismsta.exe-使用prismsta是什

电脑软件,prismsta,exe,点评:prismsta.exe是多媒体和通信相关的程序由Intersil 进程文件:prismsta或prismsta.exe 进程名称:Intersil的硅 过程类别:安全风险的过程 英文描述: prismsta.exe是utliity捆绑一些多媒体和通信组件,允许访问Intersil…

php代码修改时间格式

php代码修改时间格式

时间格式,修改,代码,电脑软件,php,修改时间格式: 当前日期( 学习说明:投入时间的时间戳和strtotime转换格式的日期()。编写了以下两个函数 PHP strtotime()函数 The strtotime () function parsed the date and time description of any English text …

一个清晰的夜晚只是一个噱头,一种仪

一个清晰的夜晚只是一个噱头,一种仪

清晰,噱头,只是一个,国王,仪式,在419点的时候,萧边意外地收到了419的礼物中最仪式与传说中的强力风扇包。带着一颗娱乐打开礼物,萧边立刻对岳(PAO),主要的陌生人社交软件,充满人文关怀的细节把握住。每个那层叠叠的礼物是一个公司的极端的时刻。…

Solaris系统使用小技巧

Solaris系统使用小技巧

系统使用,小技巧,电脑软件,Solaris,回顾:从Windows到每个行的结尾,可能有一个 uff1a解 1。ASCII模式传输。 2。取代六 %s m在每行结束时从Windows传递到UNIX。 uff1a解 1。ASCII模式传输。 2。取代六 %s 如何删除文件名-文件名 RM文…

PHPPDO库函数详解

PHPPDO库函数详解

库函数,详解,电脑软件,PHPPDO,目前,它是一个长期的方式实现数据库抽象层,它是一个很好的选择访问抽象层使用数据库如PDO。 PDO包含三个预定义的类 PDO包含三个预定义的类,这是PDO,PDOStatement,和PDOException,分别。 1。PDO PDO ->开始()指示…