【发布时间】:2022-01-27 14:33:05
【问题描述】:
我有一个包含新 jar 文件的文件夹,我需要将它们替换为不同文件夹中的旧版本文件,即使版本相同也需要替换。
我的示例文件名:
SC_S_SyncUp_V3.0.0-a7 20211221.jar
gudusoft.gsqlparser-2.3.0.9.jar
当我尝试使用以下命令时,它只得到第一部分“SC”。
ls | cut -d "_" -f 1
SC
任何人都可以指导如何做到这一点。
【问题讨论】:
我有一个包含新 jar 文件的文件夹,我需要将它们替换为不同文件夹中的旧版本文件,即使版本相同也需要替换。
我的示例文件名:
SC_S_SyncUp_V3.0.0-a7 20211221.jar
gudusoft.gsqlparser-2.3.0.9.jar
当我尝试使用以下命令时,它只得到第一部分“SC”。
ls | cut -d "_" -f 1
SC
任何人都可以指导如何做到这一点。
【问题讨论】:
如果您使用“ls -1”,“ls”会将每个文件放在一行中。然后一个“for循环”将处理每个文件名。 "basename" 可以删除已知的后缀,或者您可以使用 "sed" 删除最后一个 "." 之后的所有内容。
综合起来就是:
for file in $(ls -1)
do
f=$(echo $file | sed 's/\.[^\.]*$//')
echo $f;
done
我不确定你想用“替换旧版本”做什么。
【讨论】: