我正在尝试使用 unix 删除一系列目录名称的最后一部分。以下是命名结构的示例:
s23987_11.09.16_hf_0001
s29485_03.04.07_hs_0005
s39854_01.01.01_an_0011
我试图删除第一个 _ 之后的所有内容,以便目录名称为:
s23987
s29485
s39854
答案1
使用 POSIX shell:
for d in *_*; do mv -- "$d" "${d%%_*}"; done
这%%
句法表示“尽可能多地匹配:下划线 ( _
) 后跟*
变量值末尾的任何内容 ( )”。