【shell】三 grep -e 正则表达式

场景

大数据跑批生成了近千个文件,但是因异常,不知道终止时的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\}'

【shell】三 grep -e 正则表达式_第1张图片

注意:

①没有\d \b \S 等这类数字等表示法,
②表示n到m位要用{n,m}
③不能用*表示重复任意次

你可能感兴趣的:(shell)