读取文件行 for 命令替换 代码块重定向 while 管道符 代码块重定向 for IFS=$'\n' for line in `ls -l` do (( count++ )) done echo $count 注意: for读取时,自动按空格作为间隔符.因此需要将IFS定义为按换行符分隔 ls -l > forout.log maxlength=$(wc -l < forout.log) for i in `seq $maxlength` do (( count++ )) done <
cat ${FILE} | while read line do echo $line done ------------------------------------------- while read LINE #每次读取aa.list中的一行 do echo $LINE #输出每行的信息 done < ${FILE} ------------------------------------------- 读取文件的每行第一列和第二列 while read n m do echo
对于一个大文件,读取每一个行然后处理,用readline()方法老是读不全,会读到一半就结束,也不报错: 总之处理的行数跟 wc -l 统计的不一样,调试了一下午,改用 with open('xxx.log') as fin: for line in fin: do something with line 成功解救,但是不知道是什么原因.网上有说是文件里有特殊字符,需要用rb模式打开,试了也不行.
最近在开发实战中,遇到了一个这样的技术情景: 把log4j生成的日志文件定时刷进MySQL数据库,比如三个小时刷一次,那么每次刷数据的时候,如何控制文件读取是从上一次文件读取结束的地方开始继续读取的?并且本次要读取到文件结尾处.在网上各种搜索提问后,找到了一个叫RandomAccessFile Java类解决了问题. 先上代码: static int size=1;//主要是为了控制循环的次数,因为是定时刷,每次刷的文件行数可能不一样 static long chars=0;//chars指的是
我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好更快的实现方式麻烦也提供一下代码. 代码如下: public class testMemoryMappedFile { public static void main(String[] agrs) throws IOException{ RandomAccessFile memoryMappedFi
文件内容rolling.txt: There's a fire starting in my heart 我怒火中烧 Reaching a fever pitch and it's bringing me out the dark 熊熊烈焰带我走出黑暗 Finally, I can see you crystal clear 最终 我将你看得一清二楚 Go ahead and sell me out and I'll lay your ship bare 去吧 出卖我 我会让你一无全部 See