我正在研究一个bash shell脚本,它通过一个文件夹,最终根据文件名创建新目录。 现在,我想浏览每个文件并删除不需要的路径斜杠,并在创建新目录之前忽略fileextension。 为了测试这个,我正在回复我的文件:
#!/bin/sh
cpath=`pwd`
for file in $cpath/*;do
echo $file | grep -E '(?!.*/).+(?=\.)'
done
但是grep会过滤掉所有内容而我没有输出。我使用RegExr http://gskinner.com/RegExr/?2vu6b来制定正则表达式 负向前瞻以匹配最后一个斜线和与最后一个点匹配的正向前瞻。
答案 0 :(得分:2)
我不确定Negative lookahead是否是Extended RE的一部分。但你可以这样做 -
#!/bin/bash
for file in $PWD/*; do
basename "${file%.*}"
done