我试图摆脱日期 - 所有这些日期从2015年至今2017. 我想将每个foo_data_$date
重命名为只foo_data_*
。我只需要文件名称。不是所有的个别日期。 我不明白sed的正则表达式 - 我可以在perl中使用perl -nle'print /(foo_data _)\ d + txt),但无法弄清楚如何使用sed来完成它。 我想在sed中这样做,因为我一直在使用sed -i标志并更改文件。sed - 从文件的每一行中删除日期
cat /tmp/foo | head | sed -e 's/foo_data_20*txt/foo_data_\*/g'
foo_data_20150901.txt
foo_data_20150902.txt
foo_data_20150906.txt
foo_data_20150907.txt
foo_data_20150908.txt
foo_data_20150909.txt
foo_data_20150912.txt
我认为OP实际上需要'*'结果。只需在最后一个斜杠前添加'*'即可。没有必要引用替换右侧的'*'。另外,除非在一条线上有多个替代品,否则最后不需要'g'。 –