我有一堆文件需要合并。文件的名称是这样的 -
JOHN_80_xyz_yeti.txt
JOHN_80_xyz_puma.txt
JOHN_80_def_yeti.txt
JOHN_80_def_puma.txt
JOHN_81_xyz_yeti.txt
JOHN_81_xyz_puma.txt
JOHN_81_def_yeti.txt
JOHN_81_def_puma.txt
JOHN_82_xyz_yeti.txt
JOHN_82_xyz_puma.txt
JOHN_82_def_yeti.txt
JOHN_82_def_puma.txt
JOHN_83_xyz_yeti.txt
JOHN_83_xyz_puma.txt
JOHN_83_def_yeti.txt
JOHN_83_def_puma.txt
Run Code Online (Sandbox Code Playgroud)
我想合并 JOHN_80_xyz_yeti.txt 和 JOHN_80_def_yeti.txt;JOHN_80_xyz_puma.txt 和 JOHN_80_def_puma.txt;JOHN_81_xyz_yeti.txt 和 JOHN_81_def_yeti.txt;JOHN_81_xyz_puma.txt 和 JOHN_81_def_puma.txt;等等,在 bash for 循环中递归地遍历我的文件。我可以使用什么命令才能找到同时包含“80”和“yeti”的文件并将其作为要在 for 循环中使用的变量列出/回显?
我想要使用这些文件的命令如下-
merge -1 JOHN_80_xyz_yeti.txt -2 JOHN_80_def_yeti.txt > merged.JOHN_80_yeti.txt
merge -1 JOHN_80_xyz_puma.txt -2 JOHN_80_def_puma.txt > merged.JOHN_80_puma.txt
Run Code Online (Sandbox Code Playgroud)
我尝试“查找文件名”但未能获得所需的结果。
循环遍历所有xyz文件并使用字符串替换将 替换xyz为def,并将整个后缀替换为chewbacca.
for xyzfile in *_xyz_*.txt; do
deffile=${file/_xyz_/_def_}
result=${file/_xyz_*/_chewbaccca.txt}
merge -1 "$xyzfile" -2 "$deffile" > "$result"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |