提取文件路径的特定部分

提取文件路径的特定部分

将此路径写入文件: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包含转义序列,它们将被扩展。

相关内容