【shell】单行读文件
2019-11-21 本文已影响0人
Silver_42ac
正常写法
method 1
for i in `cat list`
do
echo $i
done
method 2
while read LINE
do
echo $LINE
done < list
单行写法
method 1
for i in `cat list` ;do echo $i; done
method 2
while read LINE ;do echo $LINE ;done < list
读取tab或者格式的文本时,不可避免的拆分字符串
字符串替换法拆分
#!/bin/bash
string="hello,shell,split,test"
array=(${string//,/ }) #字符串逗号,替换为空格后,使用括号()包裹表示数组,shell 根据IFS=tab,返回多个数组元素;按照数组的数据类型保存在变量array 中
for var in ${array[@]}
do
echo $var
done
外部命令tr 替换间隔的方法
#!/bin/bash
string="hello,shell,split,test"
array=(`echo $string | tr ',' ' '` ) #同字符串替换法拆分
for var in ${array[@]}
do
echo $var
done
修改IFS法
#!/bin/bash
string="hello,shell,split,test"
#对IFS变量 进行替换处理
OLD_IFS="$IFS"
IFS=","
array=($string)
IFS="$OLD_IFS"
for var in ${array[@]}
do
echo $var
done
参考:
Shell逐行读取文件的4种方法
shell中如何一行写while
Shell_Linux Shell 中实现字符串切割的几种方法