Linux 文本处理

本文记录常用的Linux文本处理命令,用于处理工作中的日志文件

打印文件中的指定行

# 打印文件前10行
head -10 <file_name>

# 打印文件后10行
tail -10 <file_name>

# 从文件正数第10行开始打印文件的所有行
tail -n +10 <file_name>

# 从文件倒数第10行开始打印文件的所有行
tail -n -10 <file_name>

# 打印文件的正数第10行
tail -n +10 <file_name> | head -1

# 打印文件的倒数第10行
tail -n -10 <file_name> | head -1

# 打印文件的范围行(5-10行)
awk 'NR >=5 && NR <= 10' <file_name>

# 打印文件的指定行(第3行和第5-7行)
awk 'NR==3 || (NR >=5 and NR <= 7)' <file_name>

# 打印文件的奇/偶行内容
awk 'NR%2!=0' <file_name>

tail的 -n参数后面接一个number,+10代表从文件头开始的10行,-5表示从文件末尾开始的第5行,注意这里的+10和-5均包含当前行