【发布时间】:2021-03-05 12:57:52
【问题描述】:
我有一个文件名,例如15736--1_brand-new-image.jpg
我的目标是获取_ 之后的第一个字母,在这种情况下为b。
使用s/\(.*\)\_\(.*\)$/\2/ 我可以提取brand-new-image.jpg
这部分基于https://www.oncrashreboot.com/use-sed-to-split-path-into-filename-extension-and-directory上的信息
我已经找到get first letter of words using sed,但未能将两者结合起来。
为了验证我的 sed 语句,我使用了 https://sed.js.org/
如何在已过滤的部分上组合新的 sed 语句以获取第一个字母?
【问题讨论】:
-
或者,在 POSIX shell 上,您可以尝试这样的操作:
file="15736--1_brand-new-image.jpg"; letter=$(printf %.1s "${file#*_}"); echo $letter -
@M.NejatAydin 不错。我还想出了一个 nodejs 替代方案:
node -e "console.log(process.argv[1].split('_')[1][0]);" 15736--1_brand-new-image.jpg
标签: sed