我正在阅读 Dougherty 和 Robbins 合著的《sed & awk》一书。其中一个例子要求将输出通过管道传输到 shell 脚本:
sed -f nameState list | byState
但我发现,为了正常工作,我必须使用chmod授予“byState”脚本执行权限,并使用点斜杠调用它:
sed -f nameState list | ./byState
总是这样吗?这本书是 1997 年出版的,所以也许 shell 标准已经改变了?还是因为我使用的是bash而不是sh?
编辑:这是 byState 脚本:
#! /bin/sh
awk -F, ’{
print $4 ", " $0
}’ $* |
sort |
awk -F, ’
$1 == LastState {
print "\t" $2
}
$1 != LastState {
LastState = $1
print $1
print "\t" $2
}’