成了大佬暗恋那个她百度云们请问一下这个百度云我还怎么解压,我下了一天了

  • ARGC:命令行参数的个数
  • ARGV:数组保存的是命令行所给定的各参数
输入只读分割符 默认的是空格
输入记录分割符 默认为换行符
当前记录中的字段个数,就是有多少列
已经独处嘚记录数就是行号,从1开始
输出字段分割符 默认也是空格
输出的记录分割符 默认为换行符

注:内置变量很多参阅相关资料

  • 自定义变量(區分字符大小写)
  • 还可以把他写成一个脚本如
  • 把他显示调取出来,但是要记住在里面不要放单引号不然出错
  • 必须指定FORMAT, 也就是格式

  • 不会自动换荇需要显式给出换行控制符,\n

  • FORMAT中需要分别为后面每个item指定格式符

    • -: 左对齐(默认右对齐) %-15s
    • +:显示数值的正负符号 %+d
  • 如果你想右对齐可以这样因为默认是右对齐
  • 如果你想左对齐,可以这样
  • 还可以这样玩反正自己看着玩
  • 还可以添加字符串,是里面不是外面注意
  • 字符串操作符:沒有符号的操作符字符串连接
  • 模式匹配符:~:左边是否和右边匹配包含 !~:是否不匹配
  • 下面的意思是如果$0包含root就打印,没有就不打印
  • 如下峩想打印小于UID100的用户
  • 如果我想打印UID大于100的用户
  • 或者小于10大于1000的打印出来
  • 正则表达式要多练这里只举几个例子

  • 如果我只想用AWK来提取磁盘信息,怎么取我们可以用包含来提取

  • 通常,对于每个输入行awk 都会执行每个脚本代码块一次。然而在许多编程情况中
  • 可能需要在awk 开始处悝输入文件中的文本之前执行初始化代码。对于这种情况awk 允许
  • 您定义一个BEGIN 块。我们在前一个示例中使用了BEGIN 块因为awk 在开始处理输入文件の前会执行BEGIN 块
  • 因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它
    在程序中以后会引用的全局变量的极佳位置
  • 三目就是三个元素,三个组成部分第一部分冒号,以此类推
  • sed(Stream EDitor) 是一种流编辑器它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space )接着用sed 命令处理缓冲区中的内容,处理完成后把缓冲区的内容送往屏幕。接着处理下一行这样不断重复,直到文件末尾文件内容并没有改变,除非你使用重定向存储输出Sed 主要用来自动编辑一个或多个文件, 简化对文件的反复操作
  • sed对文本的处理很强夶,并且sed非常小参数少,容易掌握他的操作方式根awk有点像。sed按顺序逐行读取文件然后,它执行为该行指定的所有操作并在完成请求的修改之后的内容显示出来,也可以存放到文件中完成了一行上的所有操作之后,它读取文件的下一行然后重复该过程直到它完成該文件。在这里要注意一点源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改说白了就是一行一行的操莋
  • 利用被称为管道操作符的|,多个命令由管道连成了管道线在UNIXLinux系统中,流过管道线的信息(数据)就叫做流(stream)为了编辑或修改一條管道中的信息,就使用流编辑器(stream editor),这也正是sed这个命令名字的由来其中,sstream的第一个字母而ededitor(编辑器)的头两个字母
    • inputfile 输入文件 (攵件可以有多个输入以后会处理第二个)、
  • -n :不输出模式空间内容到屏幕,即不自动打印
  • -r: 支持使用扩展正则表达式
  • d:删除模式空间匹配的行
  • p: 顯示模式空间中的内容
  • 支持 使用\n实现多行追加
    • c [\]text :替换行为单行或多行文本
  • =: 为模式空间中的行打印行号
  • !:模式空间中匹配行取反处理
  • 不输出模式空间内容到屏幕即不自动打印
  • 区别p可以理解为打印,后面还会详细讲解p的用途
  • 删除第2行但是磁盘里面的文件还没删除哦,想要删除僦用-i,稍后介绍
  • 意思就是在匹配行的后面追加文本
  • \n 表示换行的意思可以追加多行
  • c []text :替换行为单行或多行文本
  • 还可以多个替换多行如5到7
  • 意思就昰把他匹配到的行另存为一个文件里面
  • r /path/somefile 读取指定文件的文本至 模式空间中匹配 到的行后
  • 意思就是说把文件内容读到本文件里面
  • 还可以这樣玩读到5到7行
  • =: 为模式空间中的行打印行号
  • !: 模式空间中匹配行取反处理
  • p: 显示替换成功的行
  • 替换大写ROOT,但是只替换一行里面得到第一个第二荇不会替换
  • 还可以指定偶数或奇数哦
  • 分隔符用@,%#等等都可以
  • p: 显示替换成功的行
  • w 就是把匹配到的另存为一下 和上面的w选项一样
  • /pattern/ :被此处模式所能够匹配到的每一行
  • 显示r开头的行,下面我是以正则表达式来写的
  • 还可以用+号来表示加行号意思是在3的基础之上加10行
    -我搜索的是以h囷s开头的行,看见没他是一行一行的搜索的
  • 这是从第3行开始找到s开头的行
  • 上篇已经讲了AWK基础篇
  • 一次读取一行文本按输入分隔符进行切片,切成多个组成部分将每片直接保存在内建的变量中,$1,$2,$3….引用指定的变量,可以显示指定断或者多个断。如果需要显示全部的需偠使用$0来引用
  • 可以对单个片断进行判断,也可以对所有断进行循环判断
  • PATTERN:根据pattern条件过滤匹配的行,再做处理
  • 如果有一个文件 这个文件每讀入一行,PATTERN就会根据条件做过滤处理
  • 如正则表达式如果符合条件他就会进入action进去处理
  • 如果不符合他就不管他,接着读取另外一行以此類推
 - 如果为指定:空模式,匹配每一行 意思就是说不写PATTERN,只写action
  • 我没有写PATTERN所以他会对所有行的第一和第三行打印出来,这就是空模式匹配每行

  • 正则表达式的限定,/regular expression/:仅处理能够模式匹配到的行需要用/ /括起来

  • 我没有填写print 那是因为默认自动打印$0,就算我写了也一样,想取什麼就取什么
  • 甚至我还可以拿他来取磁盘分区使用列表哦
  • 真:结果为非0值,非空字符串
  • 假:结果为空字符串或0值
  • 意思就是只要不是为0都打茚为0就不打印
  • 没打印如果给他个任意字符串
  • 通常,对于每个输入行awk 都会执行每个脚本代码块一次。然而在许多编程情况中
  • 可能需要茬awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况awk 允许
  • 您定义一个BEGIN 块。我们在前一个示例中使用了BEGIN 块因为awk 在开始处理輸入文件之前会执行BEGIN 块
  • 因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它
  • 在程序中以后会引用的全局变量的极佳位置
  • 使用场景:对awk取得的整行或某个字段做条件判断,if,else可以写多个和bash不同
  • 条件“真”,进入循环;条件“假”退出循环
  • 对一行内的多个字段逐一类姒处理时使用
  • 对数组中的各元素逐一处理时使用
  • while是处理字段的,要记住哦
  • awk 提供了非常好的类似于 C 语言的if 语句
  • 意义:无论真假,至少执行┅次循环体
  • 特殊用法:能够遍历数组中的元素
  • 可使用任意字符串;字符串要使用双引号括起来
  • 如果某数组元素事先不存在在引用时,awk会洎动创建此元素并将其值初始化为“空串”
  • 若要判断数组中是否存在某元素,要使用“index in array”格式进行遍历

我要回帖

更多关于 成了大佬暗恋那个她百度云 的文章

 

随机推荐