shell awk sed实战

实战一:文件a006取出里面数字

TL_FMT_CHG_SHM_KEY=7100;export TL_FMT_CHG_SHM_KEY

TL_MSQ_SHM_KEY=7200;export TL_MSQ_SHM_KEY

TL_TXN_SRV_SHM_KEY=7300;export TL_TXN_SRV_SHM_KEY

sed方法

sed ‘s/\(.*\)=\(.*\);\(.*\)/\2/‘ a006

7100

7200

7300

awk -F\; ‘{print $1}‘ a006 | awk -F= ‘{print $2}‘ //awk方法有很多我只采用一种简单方法

7100

7200

7300

实战二:列出命令返回值,从第二行到第四行

ll | sed -n ‘2,4p‘

-rw-r--r--. 1 root root  14 Mar 24 14:07 a001

-rw-r--r--. 1 root root  31 Mar 25 08:45 a002

-rw-r--r--. 1 root root 357 Mar 25 09:01 a003

扩展,列出第二和第四行

ll | sed -n ‘2p;4p‘

-rw-r--r--. 1 root root  14 Mar 24 14:07 a001

-rw-r--r--. 1 root root 357 Mar 25 09:01 a003

实战三:实现cat功能

sed -n ‘p‘ /etc/passwd

实战四:使用sed脚本

cat test-script.sed

/^root/ p

/^nobody/ p

[[email protected] redx]#  sed -n -f test-script.sed /etc/passwd

root:x:0:0:root:/root:/bin/bash

nobody:x:99:99:Nobody:/:/sbin/nologin

实战五:多指令执行

sed -n ‘{

/^root/ p

/^nobody/ p

}‘ /etc/passwd

root:x:0:0:root:/root:/bin/bash

nobody:x:99:99:Nobody:/:/sbin/nologin

或sed -n -e ‘/^root/ p‘ -e ‘/^nobody/ p‘ /etc/passwd

实战六:地址范围应用

可以使用逗号、加号、和波浪号来修改地址范围。

上面的例子里面,就已经使用了逗号参与地址范围的指定。其意思很明了: n,m 代表第 n 至

第 m 行。

加号+配合逗号使用,可以指定相的若干行,而不是绝对的几行。如 n,+m 表示从第 n 行开

始后的 m 行

波浪号~也可以指定地址范围。它指定每次要跳过的行数。如 n~m 表示从第 n 行开始,每次

跳过 m 行:

cat employee.txt

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manage

cat employee.txt | sed -n ‘1,3p‘ //1到3行

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

cat employee.txt | sed -n ‘1,+3p‘ //第1行及后面3行

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

cat employee.txt | sed -n ‘1~3p‘ //从第一行开始每隔3行

101,John Doe,CEO

104,Anand Ram,Developer

实战七:匹配应用

cat employee.txt | sed -n ‘/Anand/p‘ //匹配Anand行并打印

104,Anand Ram,Developer

cat employee.txt | sed -n ‘/Anand/,$ p‘ //匹配Anand行到结束并打印

104,Anand Ram,Developer

105,Jane Miller,Sales Manage

实战八:删除文件内容

sed -i ‘d‘ employee.txt

注意:如果有多个命令,sed 遇到命令 d 时,会删除匹配到的整行数据,其余的命令将无法

操作被删除的行。

cat employee.txt

实战九:拷贝文件

sed ‘w bak.txt‘ employee.txt  //加上-n则不显示内容

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

cat bak.txt

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

也可实现上面地址范围或匹配功能

实战十:指定替换

cat employee.txt | sed -n ‘/102/s/S/A/ p‘

102,Jason Amith,IT Manager

cat  substitute-locate.txt

locate command is used to locate files

locate command uses database to locate files

locate command can also use regex for searching

sed ‘s/locate/find/2‘ substitute-locate.txt //替换第二个匹配的

locate command is used to find files

locate command uses database to find files

locate command can also use regex for searching

sed -n ‘s/locate/find/2 p‘ substitute-locate.txt //同上区别是只显示匹配到的

locate command is used to find files

locate command uses database to find files

sed -n ‘s/John/Johnny/w output.txt‘ employee.txt

# cat output.txt

101,Johnny Doe,CEO

sed -n ‘s/john/Johnny/ip‘ employee.txt  //i忽略大小写

101,Johnny Doe,CEO

file:///C:/Users/Administrator/Downloads/51CTO%E4%B8%8B%E8%BD%BD-Sed%20and%20Awk%20101%20Hacks%20-%E4%B8%AD%E6%96%87%E7%89%88.pdf

时间: 2024-10-17 17:21:00

shell awk sed实战的相关文章

[转]shell awk sed tr grep 语法汇总

tr 基本语法 -c          # 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII  -d          # 删除字符串1中所有输入字符  -s          # 删除所有重复出现字符序列,只保留第一个:即将重复出现字符串压缩为一个字符串  [a-z]       # a-z内的字符组成的字符串  [A-Z]       # A-Z内的字符组成的字符串  [0-9]       # 数字串  \octal      # 一个三位的八进制数,对应有效的ASCII字符 

linux中shell,awk,sed截取字符串方法总结

Shell 第一种: ${parameter%word} 最小限度从后面截掉word${parameter%%word} 最大限度从后面截掉word${parameter#word} 最小限度从前面截掉word${parameter##word} 最大限度从前面截掉word word可以是一个具体的字符串,也可以是一个模式字符串. 例子: str='http://www.你的域名.com/cut-string.html' echo ${str%/*}结果:http://www.你的域名.com

2015年9月13日和15日【shell、sed&awk 的使用(一)】-JY1506402-19+liuhui880818

目录: 一.shell程序的运行原理 二.shell常用技巧 1.命令历史 2.命令别名 3.命令引用 4.文件名通配 5.常用快捷键 6.补全功能 7.输入输出重定向和管道 8.与用户交互命令 9.脚本的规范建立与执行 10.bash常用选项 11.命令状态结果 持续发现中... 三.常用知识点说明 1.变量 1)变量类型 2)本地变量 3)环境变量 4)特殊变量 2.条件测试 1)整数测试 2)字符串测试 3)文件测试 4)测试表达式 3.条件判断(选择执行) 4.脚本参数(位置参数变量)

echo\awk\sed\tee\curl的使用-shell

echo的使用:http://man.linuxde.net/echo awk的使用:http://man.linuxde.net/awk sed的使用:http://man.linuxde.net/sed tee的使用:http://man.linuxde.net/tee curl的使用:http://man.linuxde.net/curl

AWK&SED

目录 命令实例 1.显示两个目录中不同的文件 2.打补丁 3.找出两个文件相同的记录 4.找不同的记录 5.对文件的某一列进行统计 6.将c文件中第一列放到到d文件中的第三列 7.删除重复行,顺序不变 uniq 选项 参数 实例 sort命令 语法 选项 参数 实例 du find awk awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 重点 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻辑运算符 正

2.3.1.shell awk 入门

awk:好用的数据处理工具 awk 也是一个非常棒的数据处理工具!sed 常常用于一整个行的处理, awk 则比较倾向于一行当中分成数个『栏位』(或者称为一个域,也就是一列)来处理.因此,awk 相当的适合处理小型的数据数据处理呢!awk 通常运行的模式是这样的: [[email protected] ~]# awk '条件类型1{动作1} 条件类型2{动作2} ...' filename awk 后面接两个单引号并加上大括号 {} 来配置想要对数据进行的处理动作. awk 可以处理后续接的文件

正则表达式解析 & awk/sed/grep实用实例总结文档

##正则表达式特殊字符解析 "^" 匹配行首 "$" 匹配行尾 "^$" 匹配整行为空,空行 grep -v "^$"    打印非空的行 "."  代表且只能代表任意一个字符 "*" 重复0个或多个前面一个的字符.例如"o*",重复一个或多个o ".*"  匹配所有字符.延伸: "^.*" -->以任意多个字符开头.&q

跟马哥学linux (lesson 8)awk & sed功能总结

一.awk 1.什么是awk awk 是一种程序语言. 它具有一般程序语言常见的功能.  因awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此, 使用awk撰写程序比起使用其它语言更简洁便利且节省时间. awk还具有一些内建功能, 使得awk善于处理具数据行(Record), 字段(Field)型态的资料; 此外, awk内建有pipe的功能,

cut\grep\awk\sed命令详解

cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的分割符进行分割      -f 列号       指定提取第几列      -c 字符范围  不依赖分割符来分割,而是通过字符范围进行字段提取      -b 字节数     以字节为单位进行分割.    (3)cut实际应用案例. 例1:cut的-d和-f选项的使用,列出/etc/passwd里面