首先,我是 awk 的新手,所以如果它很简单,请原谅。
我正在尝试生成一个包含路径的文件。我为此使用了一个ls -LT
清单以及一个 awk 脚本:
这是输入文件的示例:
vagrant@precise64:/vagrant$ cat structure-of-home.cnf
/home/:
vagrant
/home/vagrant:
postinstall.sh
Run Code Online (Sandbox Code Playgroud)
这将是预期的输出:
/home/vagrant
/home/vagrant/postinstall.sh
Run Code Online (Sandbox Code Playgroud)
awk 脚本应执行以下操作:
:
在其:
)分配给变量($path
在我的情况下):
打印$path
当前行$0
这是脚本:
BEGIN{
path=""
}
{
if ($1 ~ /\:/)
{
sub(/\:/,"",$1)
if (substr($1, length,1) ~ /\//)
{
path=$1;
}
else
{
path=$1"/"
}
}
else if (length($0) == 0)
{}
else
print $path$1
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行脚本时,出现以下混乱:
vagrant@precise64:/vagrant$ awk -f format_output.awk structure-of-home.cnf
vagrantvagrant
postinstall.shpostinstall.sh
Run Code Online (Sandbox Code Playgroud)
请问我做错了什么?
awk ×1