Linux学习—— find、grep、sed、awk

getconf LONG_BIT  查询当前平台是?位机器

 

先记录一下几个预定义变量:

$#:命令行中变量的个数

$*:所有变量的内容

$?:上一条指令执行后,返回的状态

$0:当前执行的进程/程序名

!$:上一个命令的最后一个参数  

$$:当前进程号

find /sbin -name "test"  | xargs ls -l  

 

 

grep主要用于查找

sed主要用于编辑和修改

awk主要用于对内容进行分析并做一些处理(类似SQL指令)

 

grep用于搜索文件中对应的内容,显示内容或文件信息,主要的参数有以下几类:

-c : 只输出匹配的行
-I : 不区分大小写
-h : 查询多文件时不显示文件名
-l : 查询多文件时, 只输出包含匹配字符的文件名
-n : 显示匹配的行号及行
-v : 显示不包含匹配文本的所有行  

 

sed在编辑上,具有重定向的功能,可以追加到内容中的任意位置,主要参数有:

基本工作方式: sed [基本方式] ‘ ’ [动作] ‘  [输入文本]
-n : 安静模式

-e : 多重编辑 

-f : 首先将 sed的动作写在一个档案内, 然后通过 sed -f scriptfile 就可以直接执行 scriptfile 内的sed动作

-i : 直接编辑, 这回就是真的改变文件中的内容了, 别的都只是改变显示。


动作:
a 追加

c  取代, c 后面的字符串, 这些字符串可以取代 n1,n2之间的行

d  删除

i   插入 

p  打印

 

awk

awk兼具了sed和grep两者的优势,在查找和修改文件上功能强大。

awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

一行一行的分析处理 awk '条件类型1{动作1}条件类型2{动作2}' filename, awk处理一行当中分成数个"字段"(区域), 默认的分隔符是空格键。


cat /etc/passwd |awk -F ':' '{print $1"\t"$7}' 显示/etc/passwd下以:分隔的第1列和7列。
awk -F: '/root/' /etc/passwd 搜索在passwd里面的包含root关键字的所有行。
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd 显示/etc/passwd下的所有账户,

以BEGIN   END为限,处理内部逻辑请求,

操作特点类似于SQL。

 

posted @ 2017-09-20 22:24  cy_07  阅读(262)  评论(0)    收藏  举报