は、私は、パイプ区切りファイルを持って、私はフィールドを確認しますどのようなフォーマットであるSSZファイル内のUNIXで日付形式を確認する方法は? YYYY-MM-DDTHH:MM:
AAAA|BBBB|2016-03-01T00:00:00Z|DDDD|
は、私は、パイプ区切りファイルを持って、私はフィールドを確認しますどのようなフォーマットであるSSZファイル内のUNIXで日付形式を確認する方法は? YYYY-MM-DDTHH:MM:
AAAA|BBBB|2016-03-01T00:00:00Z|DDDD|
使用のawk:
$ awk -F\| '$3~/[0-9]{4}-[01][0-9]-[0-3][0-9]T[012][0-9]:[0-5][0-9]:[0-6][0-9]Z/' file
AAAA|BBBB|2016-03-01T00:00:00Z|DDDD|
はとして|
を使用してフィールドセパレータ、3番目のフィールド($3
)が正規表現(/.../
)と一致する場合は、レコードを印刷します。
これが役立ちます。
#!/bin/sh
if [ ! $1 ]; then
echo Filename parameter expected
exit
fi
let lineno=0
for i in `cat $1`
do
if [ ! `echo $i | awk -F\| '$3~/[0-9]{4}-[01][0-9]-[0-3][0-9]T[012][0-9]:[0-5][0-9]:[0-6][0-9]Z/'` ]; then
echo "Not Matching Record found on line : $lineno : [$i]"
fi
let lineno=$lineno+1
done
実行するには、次の sh <script name> <filename>
これは、複数の問題のあるシェルプログラミング反パターンに浸透します。 http://mywiki.wooledge.org/DontReadLinesWithForと[backticksの無駄な使用](http://www.iki.fi/era/unix/award.html#backticks)。 – tripleee
あなたはperlのスクリプトを使用して考えがありますか? – AnFi
「grep -oE」[0-9] {4} - [01] [0-9] - [0-3] [0-9] T [0-9:] {8} Z "' help? – CWLiu