文件查找工具
文件查找工具:
grep,egrep ,fgrep
下面主要介绍:grep和sed命令
行首锚定符
^PATTERN
行尾锚定符
$
\<PATTERN
词首锚定符
加上引号单双都行
PATTERN\>
词尾
锚定符
.
匹配任意单个字符
不匹配回车符
*
匹配此前的字符
0
到任意次
。
*
匹配任意长度的任意字符
正则表达式工作在贪婪模式:尽可能长的匹配符合模式的字符串
精确匹配次数
?
匹配此前的字符
0
次或
1
次
;
\{m,n\}
至少
m
次。至多
n
次
\{0,5}
[ ]
匹配指定范围内的任意单个字符
[^]
匹配指定范围外的任意单个字符
-v
不匹配的
-i
忽略大小写
- r
-B
后面跟的是数字n,显示前n行
-A
显示后n行
-C
显示前后n行
-O
显示匹配的字符串而非查找的那一行
-E
支持扩展正则表达式的
\
(
\
)
\1 ,
引用
此前括号内
的内容
扩展正则表达式
grep -E
{}()|(
或者
)+
(匹配一次)
标准输入:
keyboard 用 0来表示
标准输出:
monitor 用1来表示
标准错误输出:
monitor 用2来表示
重定向:
>
输出重定向
覆盖
不可返
>>追
加重定向相当于重新写入
可以用set来设置是否用输出重定向:
set -C
不能用
>
set +C
继续使用
>
错误输出重定向:
2>
只定向正确输出
2>>
加重定向
整合正确错误的数据流在一个文件中
: &>
在Linux系统中命令执行结后,都有一个返回码
成功执行:
0
错误:
1-255
获取返回值
echo $?
/dev/null,bit bucket,
位桶
<
输入重定向
<<
cat > /tmp/a.out << END
管道:|
把前一个命令的输出当作前一个命令的输入
COMMAND1 | COMMAND2 | COMMAND3
sed
使用基本正则表达式
stream editor
行编辑器
非交互式编辑器
没有破坏性
命令:
d
删除行;
使用方式:
sed "ADDR1 ,ADDR2/command" inputfile
,表示一个范围
也可以用字符匹配来用:
/PATTERN/command
/PATTERN1/,/PATTERN/
p
显示出模式匹配的行
显示两次
即是打印命令
-n
只显示模式匹配到的内容
即
set -n ...
a\
在匹配到的一行后添加一行
\n
i\
命令光标在匹配到行的上方
!对匹配条件取反的
s
查找替换
s@@@ g i
标志位
sed
的常用选项:
-n :quiet
-e : -e '' -e ' '
一次指定多个条件
-i :
可直接修改原文件
-f :
可以读取
sed
脚本
转载于:https://blog.51cto.com/zhou123/788095