【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 中实现字符串切割的几种方法

上一篇下一篇

猜你喜欢

热点阅读