美文网首页
2021-09-08

2021-09-08

作者: SunJi_ | 来源:发表于2021-09-08 17:07 被阅读0次

shell脚本处理文本信息

  1. 逐行读取信息
// 1
for line in test.txt:
do
  echo $line
  ...
done

// 2
while read line
do
  echo $line
  ...
done < test.txt

// 3
cat test.txt | while read line
do
  echo $line
  ...
done
  1. 截取行列字符串
    cut
  • -b:以字节为单位进行分割
echo "zxcvbnm" | cut -b 2-5
>>xcvb
echo "zxcvbnm" | cut -b 2, 5
>>xb
echo "zx:cv:bn:mm" | cut -d ':' -f 1-3
>>zx:cv:bn
  • -d:按列进行分割
echo "zxcvbnm" | cut -d 2
<<x

-c、-f、-n模式,详情见博客。

awk
一个强大的文本编辑工具:可以抽取:行、列、指定字符串,按照指定的域分隔符把文本分成n个域,语法是:awk -F "域分隔符" file,默认分隔符是空格键;然后每个域都用一个名字$n,n取自然数,当n=0的时候,代表整个文档,n=1的时候代表第一个域的值,依此类推。

echo $line | awk -F ',' -f1
  1. 联合处理
while read line
do
  num=$(echo $line | awk '{print $1}')
  name=$(echo $line | cut -b 2)
   
  echo $line
  echo $num
  echo $name
done < test.txt

上述代码可以逐行处理文本信息,并可以截断每一行的信息,赋值给变量,实现shell脚本的文本数据读取功能。

参考博客:

相关文章

网友评论

      本文标题:2021-09-08

      本文链接:https://www.haomeiwen.com/subject/vyuvwltx.html