显示以a字符为结尾的所有行:
cat filename | grep a$
显示长度小于10的所有行:
cat filename | awk 'length($0) < 10 {print $0}'
可以使用'| more'一页页查看cat的结果
统计出现"NA"的行数:
cat filename | awk 'match($0, "NA") > 0 {print $0}' | wc -l
head:
ls | head -n 1 只显示第一行
取第n行:
cat xxx | head -n | tail -1
sort:
-n 按数字大小排序
-r 倒序
-k 2 按照第二列排序
-u 去重
-k 1,1 去重时从第一个开始,第1个结束
-t , 逗号为分隔符
-g 支持科学计数法排序
保留行号排序:cat result | awk '{print $0 " " NR}' | sort -k 1 -n > sorted_result
uniq:
去重。-c统计个数
sed /xx/d 删除包含xx的所有行
用\[来表示左方括号,]表示右方括号
sed '/xx/!d' 删除不包含xxx的所有行
awk -F ',' 以逗号分隔
awk '{$1="";print $0}' file 删除第一列
关于sed、awk的使用实例,参考
link.
按列求和,假设文件只有一列:
cat filename | awk '{sum+=$1} END {print sum}'
将hdfs中某个文件夹中所有文件(包含子文件夹)拷贝到另外一个文件夹目录(只拷贝所有文件,不拷贝文件目录):
hadoop fs -ls -R $origin_path | awk '$5!=0 {print $8}' | xargs -I {} hadoop fs -cp {} $destination_path
将文件重命名为1、2、3...:
hadoop fs -ls -R $origin_path | awk '$5!=0 {print $8}' | awk '{print "hadoop fs -cp " $1 " " "$destination_path" NR}' | sh
倒序输出
cat filename | tac
查看启动进程的文件
ll /proc/$pid/exe
将文件中所有字符转成大写
tr "[:lower:]" "[:upper:]" < 1.txt > 2.txt