linux5-分隔字符串

用到了要分割字符串,从网上扒了一个改改,可以用。
(1)第一种方法啦

从计数可以看出有一个问题,分割到数组会自动忽略空。即两个分割符之间是空,被忽略。

a="one^two^three^four"    #字符串
OLD_IFS="$IFS"    #分割符
IFS="^"    #定义分割符
arr=($a)  #赋值
IFS="$OLD_IFS"  #保存旧的分割符
num = 0  #数目统计
for s in ${arr[@]}     #遍历
do 
  echo "$s"
  let num+=1
  echo $num
done

(2)cut
Linux中常常会使用到cut命令来分割字符串,下面说明下cut命令参数的使用:
-d 指定分隔符,如:按照“:”分割,-d:
-c 提取第n个字节,如:-c5,表示提取每行的第5个字节,-c5-14,表示提取每行的第5-14个字节,-c1,5,14,表示提取第1、5、14个字节。
-f 指定输出的域
实例:cut –d: -f1,2 //按照”:”来分割,并输出第1和2段

好,下面就是我的demo.

#!/bin/sh

fileDir=$1
#获取文件

cd $fileDir

fileList=$(ls *.txt)

echo $fileList|tr ' ' '\n'|while read line1
do
    cat $line1 | while read line2
    do
        row20=$(echo $line2|cut -d^ -f 20)
        if [ $row20 <> "" ];then
            echo $row20
        fi
    done
done
    原文作者:进击的小鹿
    原文地址: https://www.jianshu.com/p/195af02b2337
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞