2

複数の列を持つタブ区切りファイルがあります。特定の列に有効な値が含まれているかどうかを確認する必要があります。たとえば、列 13 の値は 1,2,3,97 のみにする必要があります

awk -F"\t" '{ if ($13!=1&&$13!=2&&$13!=3&&$13!=97) print $0}' test-data.txt > check.txt
if [ $( ps -ef | grep check.txt | wc -l ) -gt "1" ];
then
    upload_ok="no"
    echo "failed"
else
    echo "pass"
fi
4

2 に答える 2

0

あなたはあなたの質問が何であるかを言わなかったので、これがそれに答えるかどうかはわかりませんが、フィールド ($13) が一連の有効な値 (1, 2 、3、または 97) を awk で使用するのは、単純に記述したとおりにコーディングするだけです。たとえば、次のようになります。

awk -F'\t' '
BEGIN{ split("1,2,3,97",tmp,/,/); for (i in tmp) valid[tmp[i]] }
!($13 in valid)
' test-data.txt

それ以外の:

awk -F"\t" '{ if ($13!=1&&$13!=2&&$13!=3&&$13!=97) print $0}' test-data.txt
于 2013-06-02T11:54:41.223 に答える