sed 删除 :
“d”:操作符
除了1-4其他的都删除
![]()
根据正则表达式进行删除:
过滤非空行:
![]()

sed 修改和替换:
操作符:
-s 替换字符串
-c
-y
替换的格式,如果全量替换p前面加个g,替换每行的第二个字符就在p前面加个2

把root开头的,替换成#
sed -n '/^root/ s/^/#/p' /etc/passwd
特殊符号:l& 大写转换成小写的特殊符号前面要加转义符(\)使用
u& 小写转换成大写的特殊符号前面要加转义符(\)使用(只有首字母)
全部换成大写:
![]()
整行替换:
![]()
one 是整行的内容,也可以是个开头 c是格式 22是替换的内容
单字符替换:y
![]()
o对应1 n对应2 长度要保持一致
sed命令的新增命令:
a 在匹配行的下一行添加内容
i 在匹配行的上一行添加内容
r 可以从其他文件读取内容,然后在匹配行的行后添加
a和i的格式:都要写在中间
![]()
$a 可以直接在文本的最后一行添加内容
$i 在倒数第二行添加内容
sed当中字符串和字符
默认排序123 可以改变排序来进行筛选内容:

也可以用.来表示单个字符
一个文件改文件夹,sed -f

看一段时间到一段时间的日志:
![]()
安装包格式:
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
看安装包的版本号:用sed命令
cat 123.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/'

awk
awk是文本三剑客之一,功能最强大的文本工具
逐行读取输入的文本内容,默认以空格和TAB键作为分隔符,但是多个空格或者tab键的空格,会自动压缩成一个,按照指定的模式或者条件执行编辑命令
也是逐行匹配,对符合对象的才会进行逐行格式化输出或者过滤
可以在免交互的情况下实现复杂的文本操作,完成自动化的配置
awk 操作符 action file
像干啥 怎么干 处理对象
awk ‘BEGIN{x=1};{x++};END{处理动作}’ 文件名
awk’操作符{处理动作}’文件名
{}外部表示定义条件{}内指定操作
BEGIN对条件做初始化操作
awk的常用选项:
-F 指定分隔符,如果是空格,tab键,可以不加
-v 变量赋值 不能从外部获取变量,只能内部赋值


第三行和第五行 中间的,换成;


awk 按行取列:
取第二列,第三列
awk ‘{print $2,$3}’ 文件名
取第二列和最后一列
awk ‘{print $2,$NF}’ 文件名
$NF 表示最后一列
print $0 就是所有,可以不加
awk的精确筛选:
$n (><==) 进行数值对比
$n~”字符串” 代表这个字段中包含某个字符串
$n!~”字符串” 代表这个字段中不包含某个字符串
$n==”字符串” 代表这个字段和字符串相同
$n!=”字符串” 代表这个字段不和这个字符串相同
$NF 最后一个字段
~ 是包含的意思
![]()
awk 的三元表达式 格式和Java一样
awk’{条件表达式1? A表达式或者值:B表达式或者值}’文件名

以root开头,以bash结尾
![]()
![]()
指定内容过滤
![]()
-v给变量赋值 awk从外部给内部赋值 格式:

内置变量:
NR 需要处理的行号
![]()
OFS 输出内容的列分隔符
NF 最后一个字段
$n 内置变量
BEGIN模式
对变量初始化
对行来进行操作,原本四行,加一就是5行


数组遍历

2359

被折叠的 条评论
为什么被折叠?



