我有一个文件名,如下所示:
file_name1.pdf.sometext.here
我有一个相同格式的几个文件的目录,我想编辑所有文件,以便删除.pdf之后的部分...因此文件看起来像这样
file_name1.pdf
答案 0 :(得分:1)
这应该让你开始:
#!/bin/bash
for FILE in "$@"; do
NEWFILE=$(echo $FILE | sed -re 's/(.*.pdf).*/\1/')
if [ ! -z "$NEWFILE" -a ! -f "$NEWFILE" -a ! -d "$NEWFILE" ]; then
mv "$FILE" "$NEWFILE"
fi
done
但如果你有/ usr / bin / rename,请使用它:
rename 's/(.*\.pdf).*/$1/' *.here
答案 1 :(得分:1)
$ ls *.pdf*
file_name1.pdf.sometext.here file_name2.pdf.blah file_name3.pdf.sometext
$ for fname in *.pdf*; do mv "$fname" "${fname//.pdf.*/.pdf}"; done
$ ls *.pdf*
file_name1.pdf file_name2.pdf file_name3.pdf