【Csh】逐行读取并处理文本(文件)



    脚本处理需要从文件中读入数据,然后逐行进行执行别的命令,此时单纯用awk或sed无法完成任务,就需要逐行读取文件中每一行的内容到变量,然后再进行处理。

    Bash Shell的处理方法见【Shell】逐行读取并处理文本

    C Shell的语法特殊,与常规的Bash Shell不同,代码如下:

    代码一



    #!/bin/csh
    set n=`wc -l <session.dat`
    set i=1
    while ($i <= $n)
       set line="`awk '{if (NR == $i) print}' data.dat`"
       echo "${line}"
       @ i ++
    end
    

    代码二

    #!/bin/csh
    foreach line (`awk '{print}' data.dat`)
       echo "${line}"
    end

    其中代码一为完美做法;代码二只适用于文件行中没有空格的情况,否则foreach会识别为多个元素。



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【Csh】逐行读取并处理文本(文件)
    标签:
    分享:

已经有2 条评论抢在你前面了~

  1. 沙发
    ramsay 2018年2月2日 下午1:46

    你这脚本自己运行过吗?

    [回复]

    晴枫

    晴枫 回复:

    很早以前的东西了,应该是运行过的

    [回复]

无觅相关文章插件,快速提升流量