shell 文件处理,该怎么处理
shell 文件处理#!/bin/shwhile read linedoif [ $line ! ]thenifileline`echo $line|awk -F :
shell 文件处理
#!/bin/sh
while read line
do
if [ "$line" != "" ];then
ifileline=`echo $line|awk -F ':' '{print $1}'`
echo $ifileline
fi
done < $1
读取处理一个3M左右的文件非常的费时间,请问如何解析处理稍大文件的每一行?
[解决办法]把你整个while循环改成这一句话:
awk -F':' '!/^$/{print $1}' $1
如果不判断空行的话,用这个也行:
cut -d':' -f1 file
[解决办法]性能低的原因是,你在while循环里面不停的调用awk,文件有多少行,就好调用多少次,浪费了太多系统资源。
请给出部分原始文本,并说清楚你希望如何处理。
一般来说,一个awk命令就足够了。
[解决办法][root@rhel6 tmp]# cat urfile
Pakage: name
version: 123
size: 456
Pakage: csdn1
version: 123
size: 456
Pakage: csdn2
version: 123
size: 456
[root@rhel6 tmp]# awk -v RS= '/Pakage: name/' urfile
Pakage: name
version: 123
size: 456