shell比對文字檔案

2021-07-10 16:33:11 字數 1816 閱讀 8452

1,對於檔案中的字元是以換行結尾的如下:

[root@py test]# cat 1.txt

1122

aa33

cc[root@py test]# cat 2.txt

11cc

ddee

ff 使用如下

[root@py test]# cat 2.sh

while

read line1

do

while

read line2

do

if[

$line1

=$line2

]

then

echo $line1

fi

done

<

1.txt

done

<

2.txt

[root@py test]# ./2.sh

11cc

2.如果文字檔案是以空格或者製表符分隔的,如下:

[root@py ~]# cat 1.txt

aa bb cc dd ee

[root@py ~]# cat 2.txt

11 22 bb 33 44 dd

可以使用如下方法:

for

i in

`cat

1.txt

`

do

for

j in

`cat

2.txt

`

do

if

[$i

=$j

]

then

echo $i

fi

done

done

bb

dd當然這個方法也可以針對第一種方法,但是貌似效率沒有第一種方法高.!

3.對於以其他分隔符分隔的,可以使用awk先來過濾,例如以

[root@py ~]# cat 1.txt

aa,bb,cc,dd,ee

[root@py ~]# cat 2.txt

11,22,bb,33,44,dd

for

x in

`awk -f

,'}'

1.txt

`

do

for

y in

`awk -f

,'}'

2.txt

`

do

if

[$x

=$y

]

then

echo $x

fi

done

done

bb dd

shell指令碼讀寫文字檔案

通過讀寫臨時檔案來完成核心與介面的互動是目前接觸的比較常用手段。而寫操作的格式如何呢。mdate date r d m y logfile tmp hdstatuslog.log echo disk is good mdate logfile 寫到檔案的格式就會變成這樣 dev sdc is goo...

VBS對文字檔案的讀寫方法

讀例子 set fso createobject scripting.filesystemobject 繫結fso物件 if fso.fileexists s fileurl then 用.fileexists方法檢查檔案是否存在 set myfile fso.opentextfile s file...

怎樣對文字檔案內的文字行排序

問題來自,基本要求是對檔案行做一些特定排序。解決問題,是首先讀到文字文字所有行,進行分析,然後再對其排序,寫重寫回文字檔案。在下面的演示中,insus.net略過重寫成文字檔案,只是在頁面輸出。準備好乙個文字檔案ds.txt,內容跟大約一樣。insus.net先寫乙個物件,即是處理文字檔案每一行,把...