我有这样的要求:
xxx_24Apr,xxx_25Apr... yyy_24Apr,yyy_25Apr
这样的文件,其中xxx和yyy可以是任何东西......我怎么能这样做?有人可以帮忙提出一个shell脚本吗?如果你可以帮助找到文件部分会很棒,我将管理其余部分。
非常感谢!
答案 0 :(得分:1)
查找和比较文件部分
$ file1=custompayment_24APR
$ file2=custompayment_25APR
$ echo ${file1%%_*}
custompayment
$echo ${file2%%_*}
custompayment
$ case "${file1%%_*}" in
> "${file2%%_*}" ) echo "same";;
> esac
same
在“_”
之后找到文件的最后一部分$ echo "_${file1##*_}"
_24APR
计算以特殊字符开头的文件
shopt -s nullglob
echo "character*" | wc -l
或使用find
find . -type f -iname "character*" | wc -l
答案 1 :(得分:0)
safe find的另一个用途:
append_duplicates_to_newest()
{
while IFS= read -r -d '' -u 9
do
prefix="${REPLY%_*}"
if [ "$prefix" = "$old_prefix" ]
then
cat -- "$old_file" >> "$REPLY"
fi
old_file="$REPLY"
old_prefix="$prefix"
done 9< <( find "/path/to/files/" -type f -printf '%f\0' | sort -z)
}
对于上一期,假设该字符存储在$char
:
grep --count "^$char" -r /path/to/files/