bash - 按名称排序和移动文件 (ksh)
问题描述
这是现在的命令
#/root/scripts/<script_name>.sh $c $targetdir_dir/$i
我不仅需要将文件移动到targetdir
.,还需要移动到该目录的某个subfolder
目录。
例子:
emea_targetdir
usa_targetdir
如果文件名是region1_filename_extension
脚本,则将其移动到targetdir_region1
,如果文件名是region2_filename_extension
,则将其移动到targetdir_region2
,依此类推。
解决方案
尝试以下 ksh 脚本:-
#!/bin/ksh
files=`ls *.txt`
for filename in $files
do
dir_name=`echo $filename | cut -d'_' -f1`
mkdir -p $dir_name
mv $filename $dir_name/$xx
done
脚步:-
- 此脚本将从当前目录读取所有 .txt 文件
- 然后用'_'字符分割文件名
- 之后,如果 dir 不存在,它会使用名称的第一部分创建一个 dir。
- 然后它将根据文件名的第一部分将文件复制到目录。
推荐阅读
- oracle - Maven OSB (12.2.1.3) 问题
- typescript - 环回 4 - ER_BAD_FIELD_ERROR
- amazon-ec2 - 如何使用 PHP 7.2.13 在 Amazon Linux 上安装 Imap
- perl - Perl 中的 $x -> {_foo} -> {_bar} 是什么意思?
- python-3.x - 需要在 Pandas 中绘制直方图,使得 x 轴是分类的,y 轴是某些列的总和
- java - 这是将列表添加到另一个列表的好方法吗,如果源列表中没有值,则填充默认值
- javascript - Angular 7数组更改值
- python - 如何检测键盘输入以使用 python 播放声音?
- react-native - 使用 appium 检查器/UI automator 无法找到仅用于启动屏幕可见性/文本框的本机应用程序的 id
- excel - Power BI - 将一列中的值分配给新计算列中的新值