用到了要分割字符串,从网上扒了一个改改,可以用。
(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