gpt4 book ai didi

linux - 如何在 Linux 中使用带参数的 awk 别名?

转载 作者:太空狗 更新时间:2023-10-29 11:48:50 24 4
gpt4 key购买 nike

我正在尝试创建 awk 的别名以从一行中剪下重要的列。例如:

$date | awk -F' ' '{print $1}'              
Wed

但我想创建一个带有列数参数的 awk 别名,例如打印 $1、打印 $2 等。

我试着在互联网上搜索并找到了这个:

alias kaat="_kaat"              
_kaat() {
awk -F ' ' '{print var}' var="$1"
}

但这仍然不起作用,也没有给我任何输出。

最佳答案

var 将打印该变量的内容,而 $var 将打印基于 var 值的字段内容。您可以在 () 中使用任何表达式,例如:$(var+1)

alias kaat="_kaat"              
_kaat() {
awk -F ' ' '{print $var}' var="$1"
}

样本运行

$ echo 'foo baz 123' | kaat 2
baz
$ echo 'foo baz 123' | kaat 1
foo

您可以按照评论中提到的那样简化/改进您的功能:

kaat() {
awk -v var="$1" '{print $var}'
}

# single line version, note the ;
kaat() { awk -v var="$1" '{print $var}' ; }


您也可以在此处使用 cut(注意:这并不完全等同,请参阅 awk field splitting summary)

$ alias k='cut -d" " -f'
$ echo 'foo baz 123' | k 1
foo
$ echo 'foo baz 123' | k 2
baz

关于linux - 如何在 Linux 中使用带参数的 awk 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51401040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com