shell中split的用法

split --help
Usage: split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is 'x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   generate suffixes of length N (default 2)
      --additional-suffix=SUFFIX  append an additional SUFFIX to file names
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes[=FROM]  use numeric suffixes instead of alphabetic;
                                   FROM changes the start value (default 0)
  -e, --elide-empty-files  do not generate empty output files with '-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines per output file
  -n, --number=CHUNKS     generate CHUNKS output files; see explanation below
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose           print a diagnostic just before each
                            output file is opened
      --help     display this help and exit
      --version  output version information and exit

示例: 把一个大文件切分成小文件

cat split_file.sh
#!/bin/bash
#平均切分文件内容
#split_file.sh xx.txt

#传入文件
filename=$1
size=`du $filename | cut -f 1`
echo $size
#限制把文件切分为几份,暂时先按总文件大小/25M来切分
limit=`expr $size / 1024 / 25`
echo $limit
# 统计文件总行数
rows=`cat $filename | wc -l`
echo $rows
# 按多少行进行切分
line=`expr $rows / $limit`
echo $line
# 切分动作
split -l $line $filename -d $filename

# 切分前
ll
total 100368
-rw-r--r-- 1 omm wheel 102774656 Sep  5  2023 part-m-00000

#执行切分脚本
sh -x split_file.sh part-m-00000

# 切分后
ll
total 200740
-rw-r--r-- 1 omm wheel 102774656 Sep  5  2023 part-m-00000
-rw------- 1 omm wheel  34246315 Apr 19 20:11 part-m-000000
-rw------- 1 omm wheel  34237016 Apr 19 20:11 part-m-000001
-rw------- 1 omm wheel  34291325 Apr 19 20:11 part-m-000002
-rw------- 1 omm wheel       468 Apr 19 20:10 split_file.sh
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: b'shell split是指在bash shell脚本使用split命令,该命令可以将指定的文件或字符串拆分成多个部分。拆分的方式可以根据指定的分隔符或指定的每行字符数来进行。拆分后的结果可以输出到文件或直接输出到终端。' ### 回答2: Shellsplit用法是将字符串按照特定的分隔符分成不同的子串,这样我们就能够更方便的处理字符串,并将其转换成我们需要的格式。在UNIX/Linux,我们可以使用一些命令实现字符串的拆分,如sed、awk、cut等。另外,也可以使用Shell内置的特定操作符实现字符串拆分。下面以Shell内置split用法为例详细介绍。 Shell内置的split使用方法有两种:一种是使用IFS内置变量,一种是使用read命令。 使用IFS内置变量 例如,我们有一个字符串“hello_world”,我们希望将其拆成两个字符串“hello”和“world”,并分别进行输出。此时我们可以使用IFS内置变量实现这个功能。 首先设置IFS为下划线: >> IFS=_ 然后使用read命令将字符串拆分成两个子串: >> read var1 var2 <<< "hello_world" 此时我们就可以将var1和var2分别输出,结果为: >> echo $var1 hello >> echo $var2 world 使用read命令 另一种方法是使用read命令实现字符串拆分。同样以字符串“hello_world”为例,我们可以输入如下代码: >> echo "hello_world" | while read var1 var2; do echo "var1=$var1, var2=$var2"; done 结果为: >> var1=hello, var2=world 这种方法的优点是可以根据特定分隔符进行拆分。 综上所述,Shellsplit用法非常简单,并且功能强大。根据实际需要选择合适的方法,可以更加高效地处理字符串。 ### 回答3: Shell split是一个在shell脚本非常常用的命令。它的主要功能是将一个字符串按照指定的分隔符分割成多个子字符串。split命令可以帮助我们把一个长文本行按照特定的标志分成多个字符串,方便我们对数据进行进一步的处理。 正常情况下,分割符可以是任何字符,比如空格、逗号、分号、竖线等等。基本语法如下: ${string//substring/replacement} 其,string是需要处理的字符串,substring是需要被替换的字符,replacement是替换后的字符。下面我们通过几个具体的例子来详细讲解一下split的使用方法。 1. 以空格为分隔符,将一段字符串分割成多个子字符串: ```shell #!/bin/bash str="hello world shell split usage" arr=(${str}) for i in "${arr[@]}" do echo $i done ``` 然后我们执行一下这个脚本: ```shell $ ./test.sh 输出结果如下: hello world shell split usage ``` 2. 以逗号为分隔符,将一个字符串分割成多个子字符串: ```shell #!/bin/bash str="apple,orange,banana,pear" arr=(${str//,/ }) for i in "${arr[@]}" do echo $i done ``` 然后我们执行一下这个脚本: ```shell $ ./test.sh 输出结果如下: apple orange banana pear ``` 3. 以竖线为分隔符,将一个字符串分割成多个子字符串: ```shell #!/bin/bash str="a|b|c|d" arr=($(echo $str | tr '|' ' ')) for i in "${arr[@]}" do echo $i done ``` 然后我们执行一下这个脚本: ```shell $ ./test.sh 输出结果如下: a b c d ``` 4. 以分号为分隔符,将一个字符串分割成多个子字符串: ```shell #!/bin/bash str="A;B;C;D" OLD_IFS="$IFS" # 保存默认IFS IFS=";" arr=($str) IFS="$OLD_IFS" # 恢复默认IFS for i in "${arr[@]}" do echo $i done ``` 然后我们执行一下这个脚本: ```shell $ ./test.sh 输出结果如下: A B C D ``` 总之,shell split是一个非常实用的命令,使用方法也非常灵活,可以根据自己的需求灵活设置分隔符。在实际的shell脚本编程,当我们需要对一个较长的字符串进行分割时,它的用处非常显著,能够提高我们代码的运行效率,同时也让我们的代码更加简洁易懂。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值