私はシェルスクリプトに初めて触れ、現在学んでいます。
2つのファイルがあります。
ファイル1:
1 StartInstall, CDM_2.5B263, OK
2 EndInstall, CDM_2.5B263, SUCCESS
3 StartPatch, CDM_2.5.0.2B1, OK
4 StartPatch, CDM_2.5.0.3B1, OK
5 EndPatch, CDM_2.5.0.3B1, SUCCESS
ファイル2:
1 StartInstall, CDM_2.5B263, OK
2 EndInstall, CDM_2.5B263, SUCCESS
4 StartPatch, CDM_2.5.0.3B1, OK
5 EndPatch, CDM_2.5.0.3B1, SUCCESS
ファイル1とファイル2の違いを見つける必要があります。行が欠落している場合、シェルスクリプトは欠落している行を表示し、それを別のテキストファイル(たとえばresult.txt
)に書き込む必要があります。シェルスクリプトは、欠落している行がどちらの行の間にあるかを表示する必要があります。
Error.txt
たとえば、出力はLine Missingと同じでなければなりません。
3 StartPatch, CDM_2.5.0.2B1, OK
2~4
ベストアンサー1
comm
ファイルがソートされているので、を使用してください。
comm -3 file1 file2 > result.txt
出力には存在するfile1
が存在しない行file2
と、存在するがタブ接頭辞を持たfile2
ない行が含まれます。file1
ファイルがソートされていない場合は、まずソートしてください。通常の代わりにbash、ksh、またはzshを使用するとしますsh
。
comm -3 <(sort file1) <(sort file2) > result.txt