交換前のsed出力

交換前のsed出力

sed出力を交換しながら何かをしようとしています。詳細は次のとおりです。出力の場合は、残りの数字の空白Date:080910 111411のみを保持してフィルタリングしたいと思います。Date:XXXXXX通常、s/Date:[0-9]{6}//g問題は解決されます。そうですか?ただし、Date:080910 111411出力はcurlAPIから取得するコマンドから来ます。sed実際に作成された内容は次のとおりです。

sed 's/;Submitted-on   *:/ Date:/g'

私はその出力をフィルタリングしようとしましたが、期限切れの時間を取り除き、生のyymmddを提供するためにsedを使用できる場所を理解していません。

誰でもどんなアイデアがありますか?

答え1

  • -E拡張正規表現オプションを設定したことを覚えていますか?それ以外の場合は作成する必要があります\{6\}(デフォルトの正規表現構文)。
  • s/Date:[0-9]{6}//g実際に維持したい部分を削除します。
  • スペースと次の数字を削除するには、次の手順に従います。sed 's/ [0-9]*$//'

答え2

これにより、次のようになりますDate:XXXXXX

echo "Date:080910 111411" | sed 's/ .*//'

これはより厳しく、「Date:」で始まります。

echo "Date:080910 111411" | sed -r 's/^Date:([0-9]{6}) .*$/\1/'

関連情報