0

我想在我的 bash 配置文件中创建一个函数来缩短:

awk 'BEGIN{OFS="\t";FS="\t"}{}'

我希望能够输入:

awk2 '{print $0}'

让它做:

awk 'BEGIN{OFS="\t";FS="\t"}{print $0}'

除非它在输入中检测到 BEGIN ...在这种情况下,它将恢复到原始的 awk 功能。

有谁知道这个功能会是什么样子?

4

2 回答 2

2

如果您使用 awk 的 -v 而不是 BEGIN 块,这很容易。

awk2() {
   awk -F'\t' -v OFS='\t' "$@"
}

-v 用于变量赋值,并且确实发生在行处理之前。

于 2012-06-27T19:45:16.317 回答
0

别名会很乱,我建议您使用 bash 函数缩短它:

function awk2() {
    awk -F "\t" -v OFS="\t" "$@"
}
于 2012-06-27T19:49:59.050 回答