代码之家  ›  专栏  ›  技术社区  ›  loretoparisi

在macosbash上使用split-d

  •  0
  • loretoparisi  · 技术社区  · 6 年前

    在linux上时 split -d

    split -d -l 1500 ${TEMP_FILE} ${OUTPUT_FILE}
        mv "${DATADIR}/${DATASET}/user_artists00" "${DATADIR}/${DATASET}/user_artists.train"
        mv "${DATADIR}/${DATASET}/user_artists01" "${DATADIR}/${DATASET}/user_artists.test"
    

    但关于 macOS 这个 -d

     -a suffix_length
                 Use suffix_length letters to form the suffix of the file name.
    

    而且是这样说的

    如果指定了其他参数,则第一个参数将用作要拆分的输入文件的名称。如果第二个附加参数是speci- 例如,它用作文件拆分到的文件名的前缀。在本例中,将文件拆分到的每个文件的名称都是 前缀后跟一个按词法排序的后缀,后缀长度字符在“a-z”范围内。如果未指定-a,则使用两个字母作为 后缀。

    xaa , xab ,等等,因为 -a 只允许 [a-z] 射程。

    1 回复  |  直到 6 年前
        1
  •  3
  •   D. Jones    5 年前

    马科斯 split BSD split ,这与 GNU split -d GNU拆分 . 所以不能将数字后缀用于 BSD拆分 .

    split -l "$linelimit" "$infile" "$prefix"
    i=0
    # to put "suffixlen" digits at the end
    suffixlen=3
    for file in "$prefix"*; do
        # to make 2 as 002 etc.
        suffix=$(printf "%0${suffixlen}d" $i)
        # actual renaming
        mv "$file" "$prefix$suffix"
        ((i++))
    done
    
        2
  •  4
  •   Zeynep Akkalyoncu    5 年前

    您可以安装 brew install coreutils gsplit 而是使用 -d 争论。