shell按行读取文件的方法

写法一:

----------------------------------------------------------------------------

#!/bin/bash

while read line

do

echo $line

done < filename(待读取的文件)

----------------------------------------------------------------------------

写法二:

----------------------------------------------------------------------------

#!/bin/bash

cat filename(待读取的文件) | while read line

do

echo $line

done

----------------------------------------------------------------------------

写法三:

----------------------------------------------------------------------------

for line in `cat filename(待读取的文件)`

do

echo $line

done

----------------------------------------------------------------------------

说明:

for逐行读和while逐行读是有区别的,如:

$ cat file

1111

2222

3333 4444 555

$ cat file | while read line; do echo $line; done

1111

2222

3333 4444 555

$ for line in $(<FILE); style="WORD-WRAP: break-word" p="" done<="" echo="" do="">

1111

2222

3333

4444

555

额外注意的地方

1.如果文件中是通过tab分隔的,覆盖追加到其他文件时变成了以空格为分隔符。

这个暂时还没有搞清楚什么原因。

2.执行脚本

#!/bin/bash
#if [ $# -eq 0 ];then
#       echo "执行该脚本需要文件参数,请输入参数"
#       exit 1
#fi
file=/home/liukai/backup/learningShell/a.txt
echo $file
echo "第一种方式"
while read line
do
        echo $line
done < $file
echo "第二种方式"
cat $file | while read line
do
        echo $line
done
echo "第三种方式"
for f in `cat $file`
do
        echo $f
done

执行结果

/home/liukai/backup/learningShell/a.txt
第一种方式
jack 20 198 165
joe 25 176 140
lucy 17 165 100
第二种方式
jack 20 198 165
joe 25 176 140
lucy 17 165 100
第三种方式
jack
20
198
165
joe
25
176
140
lucy
17
165
100

时间: 2024-12-29 07:32:01

shell按行读取文件的方法的相关文章

Shell按行读取文件的3种方法

Shell按行读取文件的方法有很多,下面写出三种方法: 写法一: #!/bin/bash #描述: # while循环读行操作 #作者:孤舟点点 #版本:1.0 #创建时间:2017-11-09 04:08:52 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH while read line do echo $line done < filename(待读取的文件) 写法二:

Java利用内存映射文件实现按行读取文件

我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好更快的实现方式麻烦也提供一下代码. 代码如下: public class testMemoryMappedFile { public static void main(String[] agrs) throws IOException{ RandomAccessFile memoryMappedFi

Linux shell逐行读取文件的方法

Linux shell逐行读取文件的方法 在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE doecho $LINEdone  < $FILENAME}         注释:我习惯把这种方式叫

C++/Php/Python/Shell 程序按行读取文件或者控制台

写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 1 #include<stdio.h> 2 #include<string.h> 3 4 int main(){ 5 const char* in_file = "input_file_name"; 6 const char* out_file = "output_file_name"; 7 8 FILE *p_in = fopen(in_fi

23 遍历删除本地目录的方法,文件末尾追加内容,按行读取文件内容

1.遍历删除本地目录 /** * 递归删除非空目录 * @param file */ public static void deletNotEmptyDir(File file){ File[] files = file.listFiles(); if (files != null) { for (File f : files) { deletNotEmptyDir(f); } } file.delete(); } 2.文件末尾追加内容 /** * 在文件末尾追加字符串 * @param fil

Linux中逐行读取文件的方法

  Linux中逐行读取文件的方法             在linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done   < $FILENAME } 注释:我习惯把

python 按每行读取文件怎么去掉换行符

python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello world\n" >>> print a #可以看到hello world下面空了一格 hello world >>> a.split() #通过split方法将字符转换成列表 ['hello', 'world'] #从列表中取第一个字符 >>> a.

【转】matlab读取文件各种方法

本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两种文件I/O程序:high level and low level. High level routines: 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程.Low level routines: 可以更加灵活的完成相对特殊的任务,需要较多的额外编程. High level ro

小时代5-perl跳过首行读取文件

如何跳过文件首行读取文件呢?我们可以使用readline来实现,打开文件后,首先readline,然后再使用while继续读取文件的其他行进行处理.这种方法比较适合同时处理多个文件的场景,具体的实现方式如下: #!/usr/bin/perl open( READ, "<$file" ); readline READ; # skip the first line while (<READ>) { ... } close READ; 当然如果有其他更好的方法,也可以在这里