linux怎么敲代码命令,Linux命令简单操作(示例代码)

一、 awk

命令格式:

awk ‘BEGIN{commands} pattern {commands} END{commands}’file

工作方式:

1.执行BEGIN{commands}语句块中语句,可选的语句块

2.从文件或者stdin中读取一行,然后执行{commands},重复这个过程,直到文件全部被读取完

3.当读至输入流末尾是,执行END{commands}语句块

特殊变量:

FILENAME:awk浏览的文件名

NR:记录数量,执行过程中对应于当前行号

NF:字段数量,执行过程中对应于当前行的字段数

FS:设置分隔符,命令行 -F

$0:执行过程中当前行的文本内容

$1:第一个字段的文本内容

$2:第二个字段的文本内容,以此类推

print&printf打印输出的函数

print的参数是以逗号进行分隔时,参数打印时则以空格作为定界符,awk的print语句中,双引号是被当做拼接操作符使用的

printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

流程控制语句

if(condition)else{}

while(){}

do{}while()

for(;;)等

内建字符串控制函数:

1.length(string):返回字符串的长度

2.index(string,search_string):返回search_string在字符串中出现的位置

3.substr(string,start_pos,end-pos):在字符串中从start-pos开始到end-pos位置,生成子串

4.split(string,array,delimiter):用delimiter生成一个字符串列表,并将该列表存入数组,delimiter默认使用当前FS值。

5.sub(regex,replace_str,string):将正则表达式匹配到的第一处内容替换成replace_str

6.gsub(regex,replace_str,string):替换正则表达式匹配到所有的内容

7.match(regex,string):检测正则表达式是否能够匹配字符串

应用:

1.从文件或者stdin中读取一行,循环执行{commands},直到读完

echo "aXbX cXdXe a;b;cX d;e" | awk -F"[X|;| ]+" ‘BEGIN{print "begin:"} {for(i=1;i<=NF;++i){++S[$i];printf("$%d=%s\n",i,$i)}} END {print "end:"; for(i in S) print i, S[i]}‘

20180110232301690534.png

2.split函数

20180110232301693464.png

二、sed

sed语法格式:

sed[options ]‘command’ file(s)

sed常用选项:

-n:只有经过sed 特殊处理的那一行(或者动作)才会被列出来

-e:组合多个sed命令

-f:执行 filename 内的sed 动作

-r:sed 的动作支援的是延伸型正规表示法的语法

-i:直接修改读取的文件内容,而不是屏幕输出

sed常用命令:

a:追加  sed ‘a xxx’ file 每一行后面都追加xxxx    sed‘$a xxx’file 最后一行追加

i:插入  sed ‘i xxx’file 每一行前面插入xxx

c:取代  sed ‘2c xxx’file 第二行用xxx取代

d:删除  sed ‘/^$/d’file  删除空白行   sed ‘1,5d’file 删除第1-5行

s:替换  sed ‘s/pattern/replace_str/g’file   /g意味sed会替换每一处匹配,否则是第一处匹配

&:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

\1 or \2:第1个or第2个匹配的字符串

应用:

1.&:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

20180110232301694441.png

20180110232301696394.png

2.\1 or \2:第1个or第2个匹配的字符串,\(pattern\)用于匹配子串,模式被包括在使用斜线转义过的()中

20180110232301698347.png

3.使用管道组合多个sed命令

sed  ‘expression’ | sed ‘expression’

sed ‘expression;expressiong’

sed -e ‘expression’ -e ‘expression’

20180110232301699324.png

三、tr---translate转换

tr语法格式:

tr [options] set1 set2

原理:通过集合映射的概念,将set1映射成set2

-常用参数

-d:指定需要被删除的字符集合

20180110232301701277.png

-c:使用集合的补集

tr –c set1 set2  使用set1的补集,即不包含set1的所有字符

20180110232301703230.png

-s:压缩输入中重复的字符,将连续重复的字符合并为一个字符

20180110232301705183.png

应用:

1.加密解密

20180110232301706160.png

2.数字文件相加

将文件中的\n转换成+,利用$[ operation ]执行算术运算

20180110232301708113.png

3.tr集合列表

tr [:class:]  [:class:]

alnum:字母和数字    alpha:字母

digit:数字  cntrl:控制(非打印)字符

lower:小写字母  upper:大写字母

graph:图形字符  punct:标点符号

space:空白字符  xdigit:十六进制字符

20180110232301709090.png

四、find

find:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应操作

常用参数

-print:打印出批判文件的文件名(路径),\n是输出文件的分割符

-print0:\0(null)作为输出文件的分割符,xargs -0

-name:文件名必需匹配的字符串,\(-name“xx”-o -name“xx”\) 匹配多个字符串

-iname:忽略字母大小写

-path:匹配文件路径

-type:文件类型过滤

-size:文件大小搜索

-delete:删除查找到的文件

-perm:匹配具有特定权限值的文件

-newer:指定一个用于比较时间戳的参考文件,匹配出参考文件更新的所有文件

-user:制定某用户文件

-exec:借助-exec与其他命令进行结合,命令格式为:command {} \; 注意{}和\之间的空格

-ok:和-exec的作用相同,只是在安全模式下进行操作,按y键yes,按n键no

-atime:访问时间,用户最近一次访问文件的时间,单位:天  -amin 单位:分

-mtime:修改时间,文件内容最后一次被修改的时间,单位:天 –mmin 单位:分

-ctime:文件(例如权限或所有权)最后一次改变的时间,单位:天 –cmin单位:分

-表示小于(最近) +表示大于(超过) 没有- 或+ 表示数字当天

!:表示不匹配规则的文件

应用:

1.-exec:借助-exec与其他命令进行结合,命令格式为:command {} \; 注意{}和\之间的空格

20180110232301711043.png

20180110232301712019.png

五、xargs

xargs:构造命令行参数并运行命令

同管道的区别

管道是实现将前面的标准输出作为后面的标准输入

xargs是实现将标准输入作为命令的参数

xargs的默认命令是echo,默认定界符是空格(空白字符)

这意味着传递给xargs的输入如果包含换行和空白字符,通过xargs的处理,换行和空白将被空格取代,因此xargs是构建单行命令的重要组件之一

常用参数

-n number :多行输出,多个参数

-d X:自定义定界符

-I | -i replace_str:在xargs扩展时replace_str会被替换为从标准输入的每一行参数

-L number :标准输入读取非空number行作为参数,-L 1 等价于-I

-p:询问是否运行

-t:启用跟踪方式

-s size:设置命令行的最大字节数

-x:如果有任何 命令行大于 -s Size 标志指定的字节数,停止运行 xargs 命令

应用:

1.-n number:设置命令的参数个数

20180110232301713973.png

2.-I replace_str:命令参数替换

20180110232301714949.png

3.xargs和find算是一对死党

find的-print0和xargs的-0

ps:只要是把find的输出结果作为xargs的输入,就必须将-print0与find结合使用,以字符null(\0)来分割,同时,xargs -0将null作为定界符

20180110232301716902.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值