shell脚本循环处理文件数据

有一个日志文件为:

# cat data.log 
20170323 1234 32435
20170324 4524 523

需要提取出里面的数据,写shell脚本实现这个功能:

#!/bin/bash

OLD=$IFS
IFS=$'\n'
for entry in $(cat /home/users/data.log)
do
    echo "Values in $entry is"
    IFS=' '
    for value in $entry:
    do
        echo "    $value"
    done
done
IFS=OLD

其中IFS变一个环境变量,作为linux的分隔符,默认是空格。这里先将其改成换行符\n,实现整行数据的提取,再在第二层循环中将其改成空格,实现每行内数据的分离。

结果如下:

Values in 20170323 1234 32435 is
    20170323
    1234
    32435
Values in 20170324 4524 523 is
    20170324
    4524
    523

再分别处理数据即可。

posted @ 2017-03-25 20:58  zoro_robin  Views(2341)  Comments(0Edit  收藏  举报