
正文
linux cut sort wc sed>vi awk (文本处理)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
cut: 显示切割的行数据
-f: 选择显示的列 (1: 显示第一列; 1,3: 显示第一列、第三列; 1-3: 显示第一列到第三列)
-s: 不显示没有分隔符的行
-d: 自定义分隔符(' '空格 ‘d’ d字符进行分割)
sort: 排序文件的行(字典排序(默认),数值排序)
-n: 按数值排序
-r: 倒序
-t: 自定义分隔符
-k: 选择排序行
-u: 合并相同行
-f: 忽略大小写
sed: 行编辑器(和vi命令有些类似,不需要打开文件进行编辑文本)
sed[options]'AddressCommnad'file ...,
-n: 静默模式,不再显示模式空间中的内容(不加此命令,会把文件原本的内容+超找的内容 显示出来,原文件没有修改)
sed -n "2p" sort.txt 只显示sort.txt 文件第二行的内容
sed "3d" sort.txt sort.txt 删除第三行的内容全部显示
-i: 直接修改原文件
-e: SCRIPT 可以执行多个脚本
-f: /PATH/TO/SED_SCRIPT
-r: 使用正则表达式
sed: 行编辑器Command
d: 删除符合条件的行;
p: 显示符合条件的行
a: \string 在指定的行后面追加新行,内容为string
\n 可以用于换行
i: \string 在制定的行前面追加新行,内容为sring
sed -i "/apple/a\hahah" sort.txt 查找到apple 并在行添加字符串hahah
sed -i "/^ha/d" sort.txt: 删除以ha开头的行
r FILE: 将制定文件的内容添加至符合条件的行处
w FILE: 将地址指定的范围内的行另存为制定的文件中
s/pattern/string/修饰符; 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
g: 行内全局替换
i: 忽略字符大小写
sed -i "s/\(id:\)[0-5]\(:initdefault:\)/\15\2/" inittab 查找id:[0-6]:initdefault: 替换为需要的数据
sed "s/\(IPADDR=\([0-9]\?[0-9]\?[0-9].\)\{3\}\).*/\155/" ifcfg-eth0: 替换ip地址最后一位数字
awk : 一个强大的文本分析工具,awk是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理
文件:/etc/password
1、将每行的第一个用户信息打印出来
awk -F ':' '{print $1}' passwd
说明:-F 切割方式
'' 单引号 强引用 不会被bash扩展 如果用双引号 $会被bash引用为获取标量
'{}' 匿名内部类
$1:表示第一行 $2:第二行 $0: 正行
2、将表头(第一列)和shell壳(第七列) 表头加 name 和 shell 进行输出打印,结尾输出 hello和world
awk -F':' 'BEGIN {print "name\tshell"} {print $1 "\t" $7} END{print "hello\tworld"}' passwd
说明:BEGIN 只会执行一次方法 在执行匿名内部类之前执行
END 只会执行一次方法,在匿名内部类执行完之后执行
awk可以执行多个匿名函数:awk -F':' 'BEGIN {print "name\tshell"} {print $1 "\t" $7} {print $0} END{print "hello\tworld" }' passwd
3、查询行中带有root的单词并打印
awk '/root/ {print $0}' passwd
4、显示passwd中的行数、列数及正行内容
awk -F':' '{print NR"\t"NF"\t"$0 }' passwd
文件:awk.txt 0 manager 1 work
张三02018-12-12car3000
李四12018-01-12car1000
王五02018-01-12car2000
赵六12018-01-12car500
李四12018-01-12car4000
赵六12018-01-12car50000
1、统计每个人1月份的工资 (默认按照制表符、空格分割数据,所以不需要加-F)
awk '{split($3,data,"-"); if(data[2]=="01"){name[$1]+=$5} } END{for (i in name){print i "\t" name[i]} }' awk.txt
2、统计每个人1月份的工资 和角色(默认按照制表符、空格分割数据,所以不需要加-F)
awk '{split($3, data, "-"); if(data[2]=="01"){name[$1]+=$5; if ($2=="0"){role[$1]="M"} else {role[$1]="W"} } } END{for(i in name){print i "\t" name[i] "\t" role[i]} }' awk.txt
3、使用*.awk 执行awk中的命令
{
split($3, data, "-");
if (data[2] == "01") {
name[$1] += $5;
if ($2 == "0") {
role[$1] = "M";
} else {
role[$1] = "M";
}
}
}
END{
for (i in name) {
print i "\t" name[i] "\t" role[i];
}
}
awk -f awk.awk awk.txt
可以得到同样的结果 -f 执行awk中的命令
linux cut sort wc sed>vi awk (文本处理)的更多相关文章- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>;&;1 jobs 环境变量 .bash_history source配置文件 nohup &; 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat>; 2.txt <;<;EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- Linux中grep、sed、awk使用介绍
linux文件操作命令介绍1)grepgrep 用于在文件中查找符合条件的记录grep 参数 过滤条件 文件过滤的条件中可使用正则表达式-c 显示符合的行数-i 忽略大小写-n 显示符合要求的记录,包 ...
- 13、Linux基础--grep、sed、awk三剑客综合运用
考试 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 [root@localhost ~]# grep -E '^[sS]' /proc/meminfo [root@l ...
- linux三剑客grep,sed,awk
grep 官方帮助文档 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard in ...
- Linux三剑客grep、sed、awk
grep grep file grep -i file grep -v file
- 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed
目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...
- 11、Linux基础--sort、uniq、cut、tr、wc、流处理工具sed
笔记 1.晨考 1.写出过滤手机号的正则表达式 1[0-9]{10} 2.写出过滤邮箱的正则表达式 chenyang@123.com [a-zA-Z0-9-_]+@[a-z0-9]+\.(com|cn ...
- linux(5)--补充(管道| / 重定向>; / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
- Linux文本三剑客超详细教程---grep、sed、awk
awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...
随机推荐- windows bat 设置代理上网脚本bat
取消IE代理服务器 ****************************************************************************************** ...
- zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个包含元组的列表. x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) ...
- LightOJ1037 Agent 47(状压DP)
dp[S]表示已经消灭目标集合为S的最少射击数 dp[0]=0 dp[S]=min( dp[S'] + min( health[i] , health[i]/demage[j][i] ) ) 其中S ...
- java 使用cookie记录用户上一次访问的时间 记住 用户的 登录名
package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.D ...
- Codeforces Round #205 (Div. 2) : A
题意: 要求找到最少次数的交换次数使得两组数都是偶数: 很明显答案要么是0,要么是1,或者不管怎么交换都不行(-1): 所以: #include<cstdio> #define maxn ...
- jquery-easyUI第二篇【综合案例】
基于easyUI开发的一个综合案例模版 <%@ page language="java" pageEncoding="UTF-8"%> <!D ...
- .NET Core 快速入门教程
.NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...
- console报错类型
常见 console报错 Error 错误 EvalError 全局错误 RangeError 引用(范围)错误 ReferenceError 参数(参考)错误 SyntaxError 语法错误 ty ...
- [翻译] softmax和softmax_cross_entropy_with_logits的区别
翻译自:https://stackoverflow.com/questions/34240703/whats-the-difference-between-softmax-and-softmax-cr ...
- Ocelot.JwtAuthorize:一个基于网关的Jwt验证包
Ocelot作为基于.net core的API方关,有一个功能是统一验证,它的作用是把没有访问权限的请求挡在API网关外面,而不是到达API网关事端的API时才去验证:之前我有一篇博文https:// ...
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
linux文件操作命令介绍1)grepgrep 用于在文件中查找符合条件的记录grep 参数 过滤条件 文件过滤的条件中可使用正则表达式-c 显示符合的行数-i 忽略大小写-n 显示符合要求的记录,包 ...
考试 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 [root@localhost ~]# grep -E '^[sS]' /proc/meminfo [root@l ...
grep 官方帮助文档 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard in ...
grep grep file grep -i file grep -v file
目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...
笔记 1.晨考 1.写出过滤手机号的正则表达式 1[0-9]{10} 2.写出过滤邮箱的正则表达式 chenyang@123.com [a-zA-Z0-9-_]+@[a-z0-9]+\.(com|cn ...
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...
- windows bat 设置代理上网脚本bat
取消IE代理服务器 ****************************************************************************************** ...
- zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个包含元组的列表. x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) ...
- LightOJ1037 Agent 47(状压DP)
dp[S]表示已经消灭目标集合为S的最少射击数 dp[0]=0 dp[S]=min( dp[S'] + min( health[i] , health[i]/demage[j][i] ) ) 其中S ...
- java 使用cookie记录用户上一次访问的时间 记住 用户的 登录名
package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.D ...
- Codeforces Round #205 (Div. 2) : A
题意: 要求找到最少次数的交换次数使得两组数都是偶数: 很明显答案要么是0,要么是1,或者不管怎么交换都不行(-1): 所以: #include<cstdio> #define maxn ...
- jquery-easyUI第二篇【综合案例】
基于easyUI开发的一个综合案例模版 <%@ page language="java" pageEncoding="UTF-8"%> <!D ...
- .NET Core 快速入门教程
.NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...
- console报错类型
常见 console报错 Error 错误 EvalError 全局错误 RangeError 引用(范围)错误 ReferenceError 参数(参考)错误 SyntaxError 语法错误 ty ...
- [翻译] softmax和softmax_cross_entropy_with_logits的区别
翻译自:https://stackoverflow.com/questions/34240703/whats-the-difference-between-softmax-and-softmax-cr ...
- Ocelot.JwtAuthorize:一个基于网关的Jwt验证包
Ocelot作为基于.net core的API方关,有一个功能是统一验证,它的作用是把没有访问权限的请求挡在API网关外面,而不是到达API网关事端的API时才去验证:之前我有一篇博文https:// ...






