1、如何统计一个文件的行数和列数
awk '{i++} END {print FILENAME, i, NF}' test.txt
2、如何使用awk删除首行或尾行
在网上看到一个很巧妙的方法,可以删除文件的首行、尾行和首尾两行,原理和操作记录如下
利用awk按行遍历,依次执行body的特点, 如下面命令
awk 'NR>1 {print line} {line=$0}' 作用是去掉最后一行。
首轮先输出line(此时为空值,打印空行,所以用 NR>1 跳过此输出),再把首行赋值给line变量,
然后在第二轮输出了line(此时为第一行内容),循环到最后一行时,输出为倒数第二行内容。
最后把最后一行赋值给line,但循环已完,所以最后一行不会输出,即去掉最后一行。
按上面原理
如果想去掉首行,就设置 NR>2
如果想保留最后一行,可以在END输出line即可
删除首行
awk 'NR>2{print line}{line=$0} END{print line}' a.txt
删除尾行
awk 'NR>1{print line}{line=$0}' a.txt
删除首尾两行
awk 'NR>2{print line}{line=$0}' a.txt
3、也可以使用sed更方便一些
删除第一行
sed 1d a.txt
tail -n +2 a.txt
删除前两行
sed 1,2d a.txt
tail -n +3 a.txt
删除最后一行
sed '$d' a.txt
head -n-1 a.txt
删除最后两行
head -n -2 a.txt
网友评论