我正在寻找一种通过给时间戳记更改文件名的方法。就是这样的:
2018-07-20_15:30:27_m_group_types.csv
这就是我希望的样子:
m_group_types.csv
我真的不知道如何...
答案 0 :(得分:2)
请您尝试以下。
echo "2018-07-20_15:30:27_m_group_types.csv" | sed -E 's/.*[0-9]+:[0-9]+:[0-9]+_//'
使用awk
:
echo "2018-07-20_15:30:27_m_group_types.csv" | awk 'match($0,/.*[0-9]+:[0-9]+:[0-9]+_/){print substr($0,RSTART+RLENGTH)}'
答案 1 :(得分:2)
您可以尝试cut
echo "2018-07-20_15:30:27_m_group_types.csv" | cut -d "_" -f3-
输出:
m_group_types.csv
说明:
-d
:对于定界符,在这种情况下,我们选择"_"
。
-f
:选择要剪切的 field ,在这种情况下,定界符"_"
将{>字符串分隔为2018-07-20_15:30:27_m_group_types.csv
1}}字段:
字段1:5
字段2:2018-07-20
字段3:15:30:27
字段4:m
字段5:group
因此,使用types.csv
,我们选择从-f3-
切入。
答案 2 :(得分:1)
您也可以尝试
mv $(date +%Y-%m-%d_%H:%M:%S_)m_group_types.csv m_group_types.csv
或
mv $(date +%Y-%m-%d_%H:%M:%S_ -d "DATE_HERE_IF_NOT_TODAY")m_group_types.csv m_group_types.csv
答案 3 :(得分:0)
使用外壳替换,您可以执行以下操作:
application/soap+xml
如果您有很多这种格式的文件,则可以考虑使用ZSH并使用$ filename="2018-07-20_15:30:27_m_group_types.csv"
$ mv "$filename" "${filename#*_*_}"
命令:
zmv
删除$ zmv -n '[^_]##_[^_]##_(*csv)' '$1'
即可完成操作((-n
是试运行)