简书链接:关于shell目录关键词取第一行按最新的获取bug的替代方案
文章字数:115,阅读全文大约需要1分钟
假设有100个客户包名都是以aa开头的,我需要授权最新安装的app的客户
刚开始用的
ls -lt /sdcard/Android/data|grep com.aa*|head 1
发现某台设备加了|head 1就不输出,tail -n 1也没用
-l代表输出其他信息,而不只是文件夹
解决方案
ls -lt /sdcard/Android/data|grep -m 1 com.aa

取指定字段
ls -lt /sdcard/Android/data | grep "com.aa" | awk '{print $9}'

其它取第一行进行输出方法
ls -lt /sdcard/Android/data | grep "com.aa" | awk 'NR==1'
ls -lt /sdcard/Android/data | grep "com.aa" | sed -n '1p'
ls -lt /sdcard/Android/data | grep "com.aa" | while read -r line; do echo "$line"; break; done
ls -lt /sdcard/Android/data | grep "com.aa" | awk '{if(NR==1) print}'
ls -lt /sdcard/Android/data | grep "com.aa" | tail -n 1
find /sdcard/Android/data -maxdepth 1 -name "com.aa*" -exec ls -lt {} \; | head -n 1
ls -lt /sdcard/Android/data | grep "com.aa" | sort -k 6,7 | head -n 1