English 中文(简体)
AWK - 如何改进gsub的例子?
原标题:AWK - how to improve this example with gsub?
  • 时间:2012-05-27 15:08:49
  •  标签:
  • awk
  • gsub

我有一个文件:

one one one
one one
one one
one
one
one

此命令替换 5 倍于 1, “ 3” 的 5 个命令

$ awk  {for(i=1; NF>=i; i++)if($i~/one/)a++}{if(a<=5) gsub("one", "three"); print }  file

three three three
three three
one one
one
one
one

同样的事情,但六倍:

$ awk  {for(i=1; NF>=i; i++)if($i~/one/)a++}{if(a<=6) gsub("one", "three"); print }  file

three three three
three three
one one
one
one
one

如何改进上述例子?

three three three
three three
three one
one
one
one

谢谢你的帮助

最佳回答
awk  {for (i=1; i<=NF; i++) {if ($i ~ /one/) {a++; if(a <= 6) sub("one", "three", $i)}}; print} 
问题回答

暂无回答




相关问题
awk save command ouput to variable

I need to execute a command per line of some file. For example: file1.txt 100 4 file2.txt 19 8 So my awk script need to execute something like command $1 $2 $3 and save the output of command $1 $2 ...

awk and bash script

I have a tgz file which contains a version file, version.txt. This file has only one line "version=1.0.0". This tgz file is present in two different directories and has the same name. My requirement ...

awk - how to specify field separator as binary value 0x1

Is it possible to specify the separator field FS in binary for awk? I have data file with ascii data fields but separated by binary delimiter 0x1. If it was character 1 it would look like this: ...

Awk - print next record following matched record

I m trying to get a next field after matching field using awk. Is there an option to do that or do I need to scan the record into array then check each field in array and print the one after that? ...

Using Unix Tools to Extract String Values

I wrote a small Perl script to extract all the values from a JSON formatted string for a given key name (shown below). So, if I set a command line switch for the Perl script to id, then it would ...

how to use sed, awk, or gawk to print only what is matched?

I see lots of examples and man pages on how to do things like search-and-replace using sed, awk, or gawk. But in my case, I have a regular expression that I want to run against a text file to extract ...

Bulk Insert Code Before </body> Tag in 100 Files

I d like to insert <?php include_once( google_analytics.php ); ?> before the closing body tag of about 100 php files. Unfortunately the person who made the site didn t make a header or ...

热门标签