在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...