如何根据文本文件中的匹配重命名tar.gz文件

stack_learner

我的Linux机器上的文件夹中有很多tar.gz文件,还有带有tar.gz文件名和匹配示例名称的文本文件。

Current_directory
      |_______TDF.tar.gz
      |_______DFG.tar.gz
      |_______GHY.tar.gz

当前目录中的names.txt文件如下所示:

Tar.gz_filenames       Sample_Names
DFG.tar.gz                Sample2
TDF.tar.gz                Sample1
GHY.tar.gz                Sample3

因此,基于它们的匹配,我希望在Current_directory中提供以下输出。

Output:

Sample1.tar.gz
Sample2.tar.gz
Sample3.tar.gz

我尝试按照以下步骤操作,但没有成功:

for j in .tar.gz ; do
  sed "s/\(\w\+\)\s\+\(\w\+\)/mv '*_\1$j' '*_\2$j'/e" names.txt
done

我的问题的小更新:当我使用此命令时,cat -e names.txt我看到如下所示:

Tar.gz_filenames    Sample_Names^M$
DFG.tar.gz  Sample2^M$
TDF.tar.gz  Sample1^M$
GHY.tar.gz  Sample3
αғsнιη

假设文件名中没有空格的另一种方法:

$ xargs -n2 echo mv -i <<<"$(sed '1d; s/$/.tar.gz/' names.txt)"
mv -i TDF.tar.gz Sample1.tar.gz
mv -i DFG.tar.gz Sample2.tar.gz
mv -i GHY.tar.gz Sample3.tar.gz

在中sed '1d; s/$/.tar.gz/'1d正在删除输入fileName的第一行,names.txt然后在每一行的末尾s/$/.tar.gz/添加.tar.gz(对行末的$ponit)。

在其中,xargs -n2我们正在阅读用空格/或Tab分隔的两组字符串。

笔记:

  • 根据cat -e names.txt该文件的输出不是Unix类型的行尾格式,将其转换为Unix类型,dos2unix fileName然后应用上述命令进行重命名。

  • 除去echo干运行。

链接到“什么是”^M以及如何摆脱它?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试根据文本文件重命名文件

如何根据存储在同名文本文件中的日期/时间重命名文件夹中的每个JPG文件?

根据文本文件中包含的文本重命名目录中的文件

根据内部文本匹配重命名文件-保留文件的所有内容

如何重命名.tar.gz文件而不提取内容并在UBUNTU中创建新的.tar.gz文件?

如何重命名子文件夹或zip文件中的文本文件

根据内容中的多个字符串重命名文本文件

如何打开文件夹并将文本文件放置在数据框中并根据文件名重命名数据框?

Bash脚本从文本文件源重命名文件

从文本文件重命名海量文件

提取.gz文件中的.TAR文件

使用文本文件重命名文件夹中的批处理文件

如何批量重命名文本文件使其成为每个文本文件中的第一个单词?

.gz(gzip)文件分析

从gz文件读取xml

意外将tar.gz文件重命名为非tar.gz文件,我的文件会被弄乱吗

使用文本文件中的列表重命名目录中的文件

通过使用文本文件中的前缀来重命名文件

在使用perl重命名文本文件时,在文本文件末尾出现问号

使用xargs重命名后如何将文件传递给tar.gz?

如何更新tar.gz文件?

如何安装tar.gz文件

在Python中读取.tar.gz文件

排除tar.gz中的文件

在水壶中,使用文本文件输入从tar.gz文件中读取csv文件,但是没有用。哪里可能错了?

如何根据模式整理文本文件中的行?

使用python重命名文本文件中的特定行

使用文本文件中的字符串对图像进行卷曲和重命名

CMD批次重命名。从文本文件中读取新名称