很抱歉,出于隐私原因,我无法提供实际的文件名.
names.txt
包含由单个empty line
分隔的几组线.每个组都属于一个特定的文件.每组线路中的线路数量各不相同.这些行组之间唯一的相似之处是,每1行表示某个文件的旧名称,而每2行表示所述文件所需的新名称.
这些线中没有空格.还有一些其他字符,比如数字、下划线、符号和正斜杠.
names.txt
在同一个目录中,看起来是这样的:
a1.pdf
Newname_for_a1.pdf
--some-texts--
b2.pdf
Newname_for_b2.pdf
--some-texts--
--some-texts--
c3.pdf
Newname_for_c3.pdf
--some-texts--
--some-texts--
d4.pdf
Newname_for_d4.pdf
--some-texts--
--some-texts--
--some-texts--
--more_texts_below--
旧名称以小写字母开头,而新名称以大写字母开头,两者都带有.pdf
扩展名
ls
美元就够了
a1.pdf
b2.pdf
c3.pdf
d4.pdf
names.txt
several-filenames-below
我能在Bash里做这个吗?请帮忙.
edit.
我已经试过看一些关于grep正则表达式的视频教程,但我觉得如果我能做一些实际的文本操作,比如查找、移动、重命名文件,我会更好地理解它,因为我也在整理和组织数百GB的媒体文件和个人文档.
我正在研究这条线索
How to rename files with filename from one txt file to filename from another txt file in bash?
edit2