我正在运行一个基于Alpine的Docker镜像,其中安装了bash。
bash --version
GNU bash, version 4.3.48(1)-release (x86_64-alpine-linux-musl)
在以下命令中,我试图将月份的第一个字母转换为小写,但它没有起作用:
find ../ -type f -name "*.md" \
-exec bash -c '
f=${1#./}
gzip -9 "$f"
mv "$f".gz "$f"
aws s3 cp "$f" s3://bucket_name/ --metadata time=$(date +%d-%b-%Y.%H%M | sed '\''s#\([A-Z]\)#\L\1#'\'') ' _ {} \;
它分配给文件的日期属性是:
"Metadata": {
"timestamp": "10-LSep-2018.1054"
}
\L
在这种情况下无法工作。预期日期应该是"10-sep-2018.1054"
如何在Docker镜像中的bash版本中使其工作?
sed -E "s/\b[^A-Z]*[A-Z]/\L&/"
。 - Samtr [:upper:] [:lower:]
就足够满足你的需求了。 - Samtr
来提高可读性。 - Samsed
的答案,但如果没有其他答案出现,我会接受您的建议。尽管它在应用范围上很广泛,但对于我的使用情况来说,我觉得使用它是安全且易读的。 - Technext