leetcode-192 统计词频
cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{ print $2, $1 }'
tr -s ' ' '\n' 将空格替换成回车,每个单词一行
sort 按字典序排序,保证重复的行相邻
uniq -c 去掉重复的行,-c统计词频数
sort -r 按逆序排序
awk '{print $2, $1}' 输出
leetcode-193 有效电话号码
grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$' file.txt
-P 可以让grep使用perl的正则表达式语法,因为perl的正则更加多元化,能实现更加复杂的场景
leetcode-194 转置文件
awk '{
for(i=1; i<=NF; i++){
if(NR==1){
res[i]=$i;
}else{
res[i]=res[i]" "$i;
}
}
}
END{
for(i=1; i<=NF; i++){
print res[i];
}
}' file.txt
NF 每一行拥有的字段总数
NR 目前所处理的是第几行数据
transpose=`head -n1 file.txt | wc -w` //统计第一行字段的个数
for i in `seq 1 $transpose`
do
echo `cut -d' ' -f$i file.txt`
done
leetcode-195 第十行
awk 'NR==10{print $0}' file.txt
awk 'NR==10' file.txt
tail -n+10 file.txt|head -1