shell指令碼 按行讀取檔案

2021-08-27 13:02:14 字數 1108 閱讀 1821

按行讀取檔案

#!/bin/bash

echo "##### 方法 1 #####"

while read line1

do echo $line1

done < $1

echo "##### 方法 2 #####"

cat $1 | while read line2

do echo $line2

done

echo "##### 方法 3 #####"

for line3 in $(<$1)

do echo $line3

done

執行結果

snail@ubuntu:5.read-line$ cat file.bin

hello world

this is 1

this is 2

this is 3

snail@ubuntu:5.read-line$ ./read-line.sh file.bin

##### 方法 1 #####

hello world

this is 1

this is 2

this is 3

##### 方法 2 #####

hello world

this is 1

this is 2

this is 3

##### 方法 3 #####

hello

world

thisis1

thisis2

thisis3

使用for讀取時,自動按空格作為間隔符。

如果輸入文字每行中沒有空格,則line在輸入文字中按換行符分隔符迴圈取值.

如果輸入文字中包括空格或製表符,則不是換行讀取,line在輸入文字中按空格分隔符或製表符或換行符特環取值.

可以通過把ifs設定為換行符來達到逐行讀取的功能.

ifs=$'\n'

echo "##### 方法 3 #####"

for line3 in $(<$1)

do echo $line3

done

shell指令碼按行讀取檔案並解析

shell指令碼讀取乙個配置檔案,配置檔案的格式如下 name abc pwd 123456 permission mop 檔名稱為 config.cfg 要在shell指令碼裡讀取這個配置檔案,並且把值一一賦給相應的變數,實現如下 while read line do name echo line...

使用shell按行讀取檔案

在shell裡面,按行讀取檔案得注意設定環境變數ifs,否則無法正確讀入。具體例子如下 oldifs ifs ifs n file home xx txt in file home in for pattern in cat do grep v e pattern done ifs oldifs要按...

按行讀取檔案

const string strurlfilename testurl.txt ifstream fin strurlfilename.c str fstream binary if fin fin.eof string serverurl getline fin,serverurl info lo...