file1とfile2という2つのファイルがあります。
file1:
91 | 2018-10-11 16:07:14 | bkwdv | 188.0000 |
77 | 2018-10-12 15:05:15 | wvwef | 94.0000 |
file2:
77 | 2018-10-12 15:05:15 | wvwef | 94.0000
91 | 2018-10-11 16:07:14 | bkwdv | 188.0000
file1の最初の列とfile2の最初の列を比較したいと思います。
文字列が一致した場合(入力データに応じて順序に関係なく)、「成功」を印刷し、そうでない場合は「終了」を印刷する必要があります。したがって、与えられた入力データに基づいて「成功」を印刷する必要があります。
最初の列の行数は両方のファイルで異なる可能性があるため、この場合は終了する必要があります。
ベストアンサー1
各ファイルから最初の列を抽出し、数値でソートして比較します。
awk '{ print $1 }' <file1 | sort -n >file1.col1
awk '{ print $1 }' <file2 | sort -n >file2.col1
if cmp -s file1.col1 file2.col1; then
echo 'success'
else
echo 'exit'
fi
rm file1.col1 file2.col1
または、bash
特定の構文を使用してください。
if cmp -s <( awk '{ print $1 }' <file1 | sort -n ) \
<( awk '{ print $1 }' <file2 | sort -n )
then
echo 'success'
else
echo 'exit'
fi
このcmp -s
コマンドは何も出力しませんが、2つのファイルオペランドの内容が同じ場合は正常に終了します。if
2つのファイルの最初に並べ替えられた列が同じであることを確認するために、ステートメントでそれを使用します。
awk '{ print $1 }'
cut -d ' ' -f 1
最初の列の数字の後の空白文字が空白文字の場合、上記のコードの内容も空白文字に置き換えることができます。