在Shell中讀取檔案

2021-05-25 11:12:04 字數 1103 閱讀 5506

在shell中讀取檔案,一次一行進行處理。用for處理起來比較簡單,但是如果一行中有空格分隔的話,那麼處理起來如果把一行作為乙個引數,用for就不行了,變通一下的做法有很多中,比如用awk。昨天在處理這個問題花了一點時間研究了一下shell讀取檔案的方法,如下:

#!/bin/ksh

catfile1 | while

readline

doline2=`echo

$line |sed『s/

/*

///

/*/g』

`# echo

"$line2"

grep"$line2"

file2 > /dev/null

a=$?

grep"$line2"

file3 >/dev/null

b=$?

# echo

"a=$a,b=$b"

if [

[ $a == 0 ]]

&& [

[ $b == 0 ]]

then

echo

$line

fidone

ricky@ricky-desktop:~$

這個指令碼是用來實現如下的需求:

1)比較三個檔案中相同的部分,輸出

2)每個檔案中的內容中有些特殊字元,在grep的時候需要進行特殊處理,用sed進行了替換

3)因為檔案內容中有空格,所以讀取的時候不能用傳統的for x in a b c的方法

檔案內容大致如下:

ricky@ricky-desktop:~$

morefile1

line1

32* 256

megabyte

(s)line2

32* 256

megabyte

(s)line3

32* 256

megabyte

(s)

shell 讀取檔案行

有道筆記 shell 讀取檔案行 最近通過spark streaming消費kafka資料,消費的資料落到hdfs,一分鐘乙個小檔案,昨天架構那邊的同事告訴我要清理歷史檔案,但是目錄太多,手動刪比較慢,於是想到可以把檔案目錄都拿到,寫入文字 path to clean.txt,通過shell迴圈讀路...

關於shell讀取檔案

不想在shell上花費過多時間。只是想讀取乙個檔案,並把檔案中的內容設定給乙個變數,成功 如下 bin sh thepath cat upper.sh while read line do echo line thepath thepath line done echo thepath while ...

shell讀取檔案引數

csh 通常我們需要使用使用shell指令碼處理一些事務,每次呼叫shell都需要新增引數。如果重複呼叫多次這個shell指令碼,我們可以將引數存入指定檔案,迴圈得到引數。bin csh f set list file of parameter set parameterlst 1 loop exe...