Shell 脚本攻略-文本操作

grep

  • --color=auto 会高亮匹配的关键字
  • -o 只显示匹配的关键字
  • -n 显示行号
  • grep -Eegrep 都是按照正则匹配
  • -l 只显示匹配的文件名称
  • -A num 打印匹配行的后 num 行,-B num 打印匹配行的前 num 行,-C num 打印匹配行的前后 num 行

cut

  • -f num 输出以空格分隔的第 num 列
  • -d"char" 以 "char" 替换默认的制表符为列的分隔符
  • -c 指定字符的宽度

sed

  • sed -i 's/pattern/replace/g' filename 文本替换
  • sed -i '/pattern/d' filename 会删除匹配的
  • sed -i 's/pattern/[&]/g' & 表示所有的匹配
  • sed -i s/\(pattern1\)\(pattern2\)/\1 \2/g \1 \2 分别表示子匹配

awk

  • awk 'BEGIN{ print "start"} pattern { commands } END{ print "end"}' filename
    1. 首先执行 BEGIN 块
    2. 再遍历每一行,执行 pattern { commands }
    3. 最后执行 END 块
  • NR 表示当前行号
    NF 表示当前行有多少个通过空格划分的单词
    $0 表示当前行所有字符
    $1 表示第一个单词
    $2 表示第二个单词
  • -v var=$extern_var 导入外部变量
  • -F: 指定分隔符
  • 可以通过 getline 显示读取一行

文本切片和替换

Script

#!/bin/bash
var="hello world ~"
shell=${var/world/shell}
echo $var
echo $shell

echo ${var:6:5}
echo ${var:(-1)}

Note

  • 切片的语法为 ${var:start_position:length}
  • 最后一个位置的 position 可以用 (-1) 表示
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 6,442评论 1 4
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,193评论 3 49
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,254评论 1 19
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,509评论 0 5
  • 一分钟波比跳的燃脂率是跑步的2倍,一般标准的波比跳的动作划分为了5个阶段。 1、下蹲:蹲下,将双手撑在地面,与肩膀...
    翻过那座山阅读 3,169评论 0 3