根据文件名创建目录名

Code_Ed_Student

在我的脚本中,我将获取一个文本文件并将其拆分为多个部分。在进行任何拆分之前,我将重新格式化文本文件的名称。问题:创建一个文件夹/目录并命名其格式的文件名。这是放置细分的位置。但是,当文本文件中包含空格时,脚本会中断。但是,这就是我尝试首先重新命名名称,然后再进行其余操作的原因。我该怎么做呢?

执行脚本: text_split.sh -s "my File .txt" -c 2

text_split.sh

# remove whitespace and format file name
FILE_PATH="/archive/"
find $FILE_PATH -type f -exec bash -c 'mv "$1" "$(echo "$1" \
| sed -re '\''s/^([^-]*)-\s*([^\.]*)/\L\1\E-\2/'\'' -e '\''s/ /_/g'\'' -e '\''s/_-/-/g'\'')"' - {} \;
sleep 1

# arg1: path to input file / source
# create directory 
function fallback_out_file_format() {
     __FILE_NAME=`rev <<< "$1" | cut -d"." -f2- | rev`
     __FILE_EXT=`rev <<< "$1" | cut -d"." -f1 | rev`
     mkdir -p $FILE_PATH${__FILE_NAME};
     __OUT_FILE_FORMAT="$FILE_PATH${__FILE_NAME}"/"${__FILE_NAME}-part-%03d.${__FILE_EXT}"
     echo $__OUT_FILE_FORMAT
     exit 1 
}

# Set variables and default values
OUT_FILE_FORMAT=''

# Grab input arguments
while getopts “s:c” OPTION
do
     case $OPTION in
         s) SOURCE=$(echo "$OPTARG" | sed 's/ /\\ /g' ) ;;
         c) CHUNK_LEN="$OPTARG" ;;
         ?) usage
            exit 1
            ;;
     esac
done

if [ -z "$OUT_FILE_FORMAT" ] ; then
    OUT_FILE_FORMAT=$(fallback_out_file_format $SOURCE)
fi
尼克·鲁索(Nick Russo)

您的脚本采用以-s指定的文件名参数,然后通过重命名包含的文件来修改硬编码目录,然后使用初始文件名生成输出目录和文件名。听起来好像应该对工作流程进行调整。例如,不要试图更正/ archive /中所有错误的文件名,而只需修复用-s指定的文件名即可。

要获取文件名和扩展名,请使用bash的字符串操作功能,如以下问题所示

filename="${fullfile##*/}"
extension="${filename##*.}"
name="${filename%.*}"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

php:目录名+文件名

来自分类Dev

从文件名获取目录名

来自分类Dev

从文件名创建目录名-去除非字母数字字符并小写

来自分类Dev

验证文件名与目录名匹配

来自分类Dev

如何根据文件名创建多个目录并在linux中更改文件名?

来自分类Dev

具有目录名称和文件名的树

来自分类Dev

Spring boot 创建excel错误(文件名、目录名或卷标语法不正确)]

来自分类Dev

根据文件名解构目录结构

来自分类Dev

命令行按文件名或目录名对文件或目录进行排序

来自分类Dev

无法使用文件名或目录名_metadata加载扩展名

来自分类Dev

Unix根据文件名创建目录并将文件移动到目录

来自分类Dev

展平目录,但在新文件名中保留目录名

来自分类Dev

使用文件名创建目录哈希

来自分类Dev

使用文件名创建目录哈希

来自分类Dev

在批处理文件中更改文件名及其目录名

来自分类Dev

根据文件名创建列

来自分类Dev

File.Copy错误-C#-IOException文件名,目录名或卷标签

来自分类Dev

如何解决错误“文件名,目录名或卷标语法不正确”?

来自分类Dev

Java / Webdav:文件名,目录名或卷标语法不正确”

来自分类Dev

递归地将目录名添加到文件名

来自分类Dev

如何列出不包含特定文件名的目录名?

来自分类Dev

如何替换文件名和目录名中的哈希模式

来自分类Dev

gradle 错误文件名、目录名或卷标语法不正确

来自分类Dev

将目录名与二进制文件名连接

来自分类Dev

WindowsError: [Error 123] 文件名、目录名或卷标语法不正确

来自分类Dev

创建子目录并根据文件名中的日期按日期组织文件

来自分类Dev

在目录名称和该目录的文件名中替换单词

来自分类Dev

将文件移动到父目录,并在文件名之前加上子目录名

来自分类Dev

Python:根据文件大小打印文件名及其目录

Related 相关文章

  1. 1

    php:目录名+文件名

  2. 2

    从文件名获取目录名

  3. 3

    从文件名创建目录名-去除非字母数字字符并小写

  4. 4

    验证文件名与目录名匹配

  5. 5

    如何根据文件名创建多个目录并在linux中更改文件名?

  6. 6

    具有目录名称和文件名的树

  7. 7

    Spring boot 创建excel错误(文件名、目录名或卷标语法不正确)]

  8. 8

    根据文件名解构目录结构

  9. 9

    命令行按文件名或目录名对文件或目录进行排序

  10. 10

    无法使用文件名或目录名_metadata加载扩展名

  11. 11

    Unix根据文件名创建目录并将文件移动到目录

  12. 12

    展平目录,但在新文件名中保留目录名

  13. 13

    使用文件名创建目录哈希

  14. 14

    使用文件名创建目录哈希

  15. 15

    在批处理文件中更改文件名及其目录名

  16. 16

    根据文件名创建列

  17. 17

    File.Copy错误-C#-IOException文件名,目录名或卷标签

  18. 18

    如何解决错误“文件名,目录名或卷标语法不正确”?

  19. 19

    Java / Webdav:文件名,目录名或卷标语法不正确”

  20. 20

    递归地将目录名添加到文件名

  21. 21

    如何列出不包含特定文件名的目录名?

  22. 22

    如何替换文件名和目录名中的哈希模式

  23. 23

    gradle 错误文件名、目录名或卷标语法不正确

  24. 24

    将目录名与二进制文件名连接

  25. 25

    WindowsError: [Error 123] 文件名、目录名或卷标语法不正确

  26. 26

    创建子目录并根据文件名中的日期按日期组织文件

  27. 27

    在目录名称和该目录的文件名中替换单词

  28. 28

    将文件移动到父目录,并在文件名之前加上子目录名

  29. 29

    Python:根据文件大小打印文件名及其目录

热门标签

归档