常见文本处理工具
vim/less
tips: 不要用 vim 看日志文件,特别是大文件,可能生成临时文件
-
:w
,:q
,:x
;i
,o
,r
,x
,u
,ctrl + r
-
h
,j
,k
,l
vs←
,↓
,↑
,→
-
ctrl + b
,ctrl + f
vsPgUp
,PgDn
-
0
- 移动到行首 and$
- 移动到行尾 -
H
- 移动到当前页面顶部,L
- 移动到当前页面底部 andgg
- 移动到文件第一行,G
- 移动到文件最后一行 -
5G
- 移动到第五行 -
c$
Da
- 从光标位置开始, 修改当前行 -
yyp
- 复制当前行并在光标后粘贴 and 试试2yyP
-
dd
- 剪切当前行 -
w
- 移动到下个单词开头 andb
- 移动到上个单词结尾 不含标点 -
/pattern
,?pattern
- 查找 andn
,N
-
:%s/old/new/gc
- (逐个)替换
grep
ps aux | grep
-
-A
,B
,C
- 相关上下文 -v
-E
awk
- 取指定列 - echo "a b c" | awk '{print $2}'
- 取指定行 - echo -e "a b c\n 1 2 3" | awk 'NR==2 {print}'
- 按列求和 - echo -e "1 2 3\n1 2 3\n1 2 3" | awk '{s1+=2;s3+=$3}END{print s1,s2,s3}'
- 列按条件过滤 -
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- 列转行 - echo -e "1\n2\n3" | awk '{ORS=" ";print}'
sed
- 删除某行 - sed -i '1,3d' a.txt
- 删除匹配行 -
sed -i '/^$/d' a.txt
- 匹配行替换匹配字符 -
sed -i "/logger name=\"com.darcytech\"/ {s/INFO/DEBUG/g}" aa.txt