有没有awk
办法在路径上放置小脚本?
例如,我有一个非常有用的整理操作:
// collate-csv.awk
FNR > 1 || NR == 1
Run Code Online (Sandbox Code Playgroud)
我可以以各种很棒的方式使用它:
xargs -a $(find * -name *.csv) awk -F',' -f collate-csv.awk | ...
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我无法从任何地方调用我的 awk 工具。使用可执行的 shell 脚本,我可以将其放入路径上的 bin 文件夹中。linux 中是否有一种机制可以让awk
我在文件系统中的任何地方都可以使用这些不可执行的源文件?
(有条件的是“机制”不是“你为什么不直接用锤子打它”式的kludge)
除了@Roamia 的答案之外,您还可以使用AWKPATH
变量作为要查找的目录列表collate-csv.awk
AWKPATH=${HOME}/include/awk:/some/other/path
export AWKPATH
xargs -a $(find * -name *.csv) awk -f collate-csv.awk -F',' | ...
Run Code Online (Sandbox Code Playgroud)
请注意
.awk
扩展不是强制性的,只要保持一致,#!/usr/bin/awk -f
是强制性的,当脚本作为脚本单独使用时(无awk -f
调用),awk -f
(并且 awk 知道如何使用AWKPATH
,bash 不知道)