我有一个目录下的文本文件,我想组织。 我试图通过为每个文件的目录这样做通庆典。 当我将文件移动到各自新的文件夹,我要修改原来的filename
,并创建一个额外的文本文件labeld info.txt
保存原文件名(该文件也将在新文件夹)。 该文件名称的改变,从去xxx-file_name-aa1.txt
到xxx-aa1.txt
。 第一个和最后一个之间的任何东西-
被剥离出来。 该文件夹具有相同的名称文件xxx-aa1
。
test.sh(我的sed声明条whitspaces并把一切都以较低的情况下,除了在最后什么-
FILE_PATH="/media/sf_linux_sandbox/txt_files/"
while read -r file; do
#sed statement empty
new_name=$(echo "$file" | sed 's/^\(.*\)\(-[^-]*\)$/\L\1\E\2/; s/ *- */-/; s/^\(.*\) \+- *\([^-]*\)$/\1-\2/; s/ /_/g')
mv "$file" "$new_name"
done < <(find $FILE_PATH -maxdepth 1 -type f -name '*.txt')
输入:
|-- ./
| |-- xxxx-test_file1-aa1.txt
| |-- xxxx-test_file2-bb2.txt
所需的输出:
|-- ./
| |-- xxxx-aa1
| |--xxx-aa1.txt
| |--info.txt // contains name 'test_file1'
| |-- xxxx-bb2
|--xxx-bb2.txt
|--info.txt // contains name 'test_file2'
电流输出
|-- ./
| |-- xxxx-test_file-aa1
| |--xxxx-test_file-aa1.txt
| |-- xxxx-test_file-bb2
|--xxxx-test_file-bb2.txt