Chinaunix

标题: 如何不使用read line来逐行处理文本? [打印本页]

作者: matrixzj    时间: 2012-10-23 11:59
标题: 如何不使用read line来逐行处理文本?
目前脚本写成这样的时候

#! /bin/bash

for i in `cat /root/ks.cfg`; do
        echo $i
done

遇到文件中的空格就会转行

如果使用while read line来处理就会遇到另一个问题,它会fork一个新的进程,达不到我的需要。

请问怎么处理呢?
作者: blackold    时间: 2012-10-23 12:05
回复 1# matrixzj


    "遇到空格就会转行“?
作者: aqbssh    时间: 2012-10-23 12:14
本帖最后由 aqbssh 于 2012-10-23 12:38 编辑

回复 2# blackold

看 错了 ,删了,不好意思

不过,你可以在   for  循环之前设置一下 IFS="\n"   ,就会打印整条的记录了。
作者: kk5234    时间: 2012-10-23 12:26
回复 1# matrixzj

#! /bin/bash

for i in "`cat /root/ks.cfg`"; do
        echo "$i"
done
作者: yestreenstars    时间: 2012-10-23 13:12
aqbssh 发表于 2012-10-23 12:14
回复 2# blackold

看 错了 ,删了,不好意思
这个方法有效,LZ可以试一下。
  1. #! /bin/bash
  2. IFS="\n"
  3. for i in `cat /root/ks.cfg`; do
  4.         echo $i
  5. done
复制代码

作者: qq312873977    时间: 2012-10-23 13:18
回复 5# yestreenstars
最好把$i用双引号括起来

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2