场景
大数据跑批生成了近千个文件,但是因异常,不知道终止时的task id。需要查找task id后,将后续的任务继续跑批。
则需要查看目录,文件生成到哪一个,但是zeppelin中的shell interpret 只能查看100个文件,而且排序并不好看
所以使用 grep -e [option] [regexString] 来查看目录
使用
例如我的任务是 task_num1_num2形式,查看zeppelin中 pyspark 的信息是在 task_3_728_位置,然后显示 信息只能查看到1000行
ls |grep -e '^task_[3]\{1\}_.\{0,10\}' #得到task_3_开头的文件
hdfs dfs -ls -C /xxxx/result/ |grep -e '^task_[3]\{1\}_.\{0,10\}' #hdfs下 -ls -C
grep -v 过滤语句自身就支持 正则,grep -e -v 或者grep-ev 会报错
hdfs dfs -ls -C /xxxx/result/ |grep -e '^task_[3]\{1\}_.\{0,10\}' |grep -v '^task_3_[1-6][0-9]\{0,2\}_.\{0,100\}'
注意:
①没有\d \b \S 等这类数字等表示法,
②表示n到m位要用{n,m}
③不能用*表示重复任意次