Questions tagged «gawk»

1
gawk与awk之间的区别
试图了解gawk与awk这两个函数之间的区别?什么时候使用gawk vs awk?还是用法相同? 另外,可以举一个例子吗?
50 awk  gawk 

3
使用awk跳过文本文件中的前6行/行
如何跳过文本文件(input.txt)中的前6行/行,并使用awk处理其余行?我的awk脚本(program.awk)的格式为: BEGIN { } { process here } END { } 我的文本文件是这样的: 0 3 5 0.1 4.3 2.0 1.5 1.5 3.0 0.3 3.3 1.5 2.1 . . . 我想从以下位置处理文件: 0.3 3.3 1.5 2.1 . . .
39 awk  gawk 

2
gawk就地和标准输出
是否可以使用gawk的-i inplace选项并将其打印到stdout? 例如,如果我想更新文件,并且有任何更改,请打印文件名,更改的行stderr可以执行以下操作: find -type f -name 'myfiles' -exec gawk -i inplace '{if(gsub(/pat/, "repl")) { print FILENAME > "/proc/self/fd/2" ; print > "/proc/self/fd/2"; } print;}' {} + 但是有stdout替代方法吗?还是有一种更清洁的方法来将该块打印到备用流?
10 awk  gawk 

4
awk一次分配给多个变量
我正在尝试从一个字符串中提取两个数值,并使用awk(将它们分配给变量)(gawk这正是我正在使用的)。我想从tmux版本字符串中提取主要和次要版本号到awk变量中,例如: 输入:tmux 2.8; maj == 2和min == 8 输入:tmux 1.9a; maj == 1和min == 9 输入:tmux 2.10; maj == 2和min == 10 假设我的输入来自tmux -Vstdin,我目前有以下内容: tmux -V | awk '{ maj = +gensub(/([0-9]+)\..*/, "\\1", "g", $2); min = +gensub(/.*\.([0-9]+).*/, "\\1", "g", $2); # ...do something with maj and min... }' 这行得通,但是正如许多tmux用户所知道的,if-shell在.tmux.conf文件中使用(我希望在其中使用该东西)很容易导致config文件中的行很长,所以我想知道是否有办法组合这两个变量分配到一个语句中以节省空间...或其他任何方式从输入中收集这两个变量并节省空间。 …
9 awk  gawk 

1
真假条件
我发现,如果使用awk 0 inputfile,它将不会打印任何内容,原因0是错误的条件。 如果使用awk 1 inputfile,它将1为awk解释的每一行打印所有内容,均表示为true。 如果使用awk any_string inputfile,它将不会打印任何内容,因为所有awk变量都初始化为零,因此为false。 但是,如果使用awk any_integer inputfile,它将变为true并打印文件的每一行,请问是什么原因? 我找不到GNU awk手册中已经解释过的内容。
9 awk  gawk 

2
使用awk处理3个文件
考虑以下文件: file1: boo,8,1024 foo,7,2048 file2: foo,0,24,154 noo,0,10,561 file3: 24,154,7,1024,0 我需要转到File1并检查是否$2==7;如果为true,则从File1中获取$1,$2并$3从File1中获取;现在我必须比较$1从File1等于$1从File2;如果是真的,我不得不采取$3并$4从文件2,其不存在于文件1,那么我必须去文件3,检查是否$1从文件3等于$3从文件2,并$2从文件3等于$4从文件2 ; 如果是,那么我必须检查是否$2来自File1等于$3从文件3,那么如果这种情况是真的,我有比较$3从File1中有$4来自文件3,如果$3从文件1大于$4从文件3。 我尝试了以下脚本: cat [file1] [file2] [file3] | awk -F, '{if(NF==3) {if($2==7){a[$1]=$1; b[$1]=$2; c[$1]=$3} }else {if(NF==4){if(a[$1]==$1){d[$3]=$3; e[$4]=$4} }else {if(NF==5){if(d[$1]==$1 && e[$2]==$2){print a[$1], b[$1], c[$1], d[$1]}} } } }' 所需的输出是: foo,7,2048,24,154,1024
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.