文本/日志常用shell内建命令操作

# 列出匹配出的上两行和下九行
grep -A9 -B2 'Error:*'

# 列出前10行和后10行
head -n 10
tail -n 10

# 列出第20行和第30行之间
head -n 30 | tail -n 10

# 按第4列和第5列排序并去重,第5列为数字序,第4列为逆序,以:为分隔符(默认为空格tab)
sort -t : -u -k 4r -k 5n

# 获取第4列和第5列,“:”为分隔符
awk -F ':' '{print $4" "$5}'

# 输出行号(n),空行不编号(b)并且多空行合并(s)
cat -n -b -s

# 统计行数(字数-w,字节数-c)
wc -l

# 将输入参数应用于命令(如cat)
xargs cat
# 统计工程下Java代码行数
find . -name "*.java" | xargs cat | wc -l
# 统计工程下Java代码行数(不带空行)
find . -name "*.java" | xargs cat | grep -v ^$|wc -l

# 未完待续......

编程技巧