データ行を含むログがあります。
Mon Apr 20 03:15:18 EDT 2015: my|data|data|data
ログからデータを抽出して先行タイムスタンプを削除するスクリプトを作成しようとしています。
while read p
do
echo $p | sed "s/.* EDT $year: //g" > replay_message_$count.txt;
count=$((count+1));
done < $fileName
これで、ユーザーがパラメータを渡す.* EDT $year:
スキーマを使用しています。$year
年をパラメータとして渡さずにデータを抽出するには?
ベストアンサー1
日付形式に常にスペースで区切られた6つのフィールドがあることがわかっている場合は、次のようにします。
cut -d ' ' -f 7-
タイムスタンプが常に30文字を占めていることがわかっている場合は、次のものを使用できます。
cut -c 31-
タイムスタンプが数字、コロン、スペースで終わり、データにこのパターンが含まれていない場合は、次のようになります。
sed 's/.*[0-9]: //'
より具体的な要件がある場合は提出してください。