我需要从类似的结果中删除日期,例如:
找到dir / dir / dir / dir / dir / dir / dir / dir / dir / joseluis.com / ASDFookiwnloadRQ /-名称“ $ date *”
结果->
/dir/dir/dir/dir/dir/dir/dir/dir/dir/joseluis.com/ASDFookiwnloadRQ/2018-07-30_TRANSACTION_123456789.jluis
我需要得到2018-07-30
。
我尝试使用find
+ cut
,但由于文件结构不同,因此无法实现。
答案 0 :(得分:0)
您必须在这里使用cut吗? Cut不需要正则表达式,因此在这里感觉不像是正确的工具。我认为使用grep可能会更好:
假设日期值始终为YYYY-MM-DD,则可以执行以下操作:
$ find . | grep -P '\d{4}\-\d{2}\-\d{2}' -o
2015-01-30
2016-11-10
2016-10-18
2016-12-06
2017-03-15
2017-03-03
2018-07-30
,它将从正则表达式中获取与YYYY-MM-DD值匹配的每个值。
答案 1 :(得分:0)
使用awk
,您只能得到最后一个斜杠之后的字符串
使用cut
字符串的前10个字符
echo "/dir/dir/dir/dir/dir/dir/dir/dir/dir/joseluis.com/ASDFookiwnloadRQ/2018-07-30_TRANSACTION_123456789.jluis" | awk -F "/" '{print $NF}' | cut -c 1-10
答案 2 :(得分:0)
额外方法:
find dir/dir/dir/dir/dir/dir/dir/dir/dir/joseluis.com/ASDFookiwnloadRQ/ -name "$date*" | xargs -n 1 basename | cut -f1 -d_