常见文本处理工具
vim/less
tips: 不要用 vim 看日志文件,特别是大文件,可能生成临时文件
-
:w,:q,:x;i,o,r,x,u,ctrl + r -
h,j,k,lvs←,↓,↑,→ -
ctrl + b,ctrl + fvsPgUp,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