![提取文件路径的特定部分](https://linux22.com/image/84996/%E6%8F%90%E5%8F%96%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E7%9A%84%E7%89%B9%E5%AE%9A%E9%83%A8%E5%88%86.png)
将此路径写入文件:words/05_díj/díj_pct.txt
如何仅提取这部分?05
我想要的是使用该部分作为外部变量的值来执行 awk 脚本。
例子:
for f in words/*/*_pct.txt
do
#So, I want to extract "05" from $f
#To use it here
awk -v var -f script.awk "$f" >> words/results.txt
done
答案1
使用参数扩展:
for f in words/*/*_pct.txt; do
n=${f#*/} # Remove everything till the first slash
n=${n%%_*} # Remove everything from the first underscore to the end
awk -v var="$n" -f script.awk "$f" >> words/results.txt
done
请注意,您需要引用-v var="$n"
,如果$n
包含转义序列,它们将被扩展。