ファイル名はabcd_abcd_12302022.csvで、次のコマンドを使用してファイル名から日付を抽出しました。
cut -c 11-18
日付は 12302022 です。 2022年12月30日に次のコマンドを実行しようとしましたが、12_30_2022を取得しました。
echo '20150716' | sed -e 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1_\2_\3/'
2022年12月30日の出力が必要です。
ベストアンサー1
これはあなたのような基本的な考えです。そこに直接追加したので、_
変更すると/
機能します。 sedの演算子には別の区切り文字を使用する必要がありますs///
。ここでは以下を使用していますs|||
。
$ echo abcd_abcd_12302022.csv | cut -c 11-18 | sed -E 's|(..)(..)(....)|\1/\2/\3|'
12/30/2022
または、携帯性を向上させるには:
$ echo abcd_abcd_12302022.csv | cut -c 11-18 | sed 's|\(..\)\(..\)\(....\)|\1/\2/\3|'
12/30/2022
またはを使用できますが、次のように挿入する内容をエスケープする必要がs///
あります。/
\/
$ echo abcd_abcd_12302022.csv | cut -c 11-18 | sed -E 's/(..)(..)(....)/\1\/\2\/\3/'
12/30/2022
$ echo abcd_abcd_12302022.csv | cut -c 11-18 | sed 's/\(..\)\(..\)\(....\)/\1\/\2\/\3/'
12/30/2022