我有一个awk程序 #! /usr/bin/awk
awk '{num = $1
for (div = 2; div * div <= num; div++) {
if (num % div == 0)
break
}
if (num % div == 0)
printf "Smallest divisor of %d is %d\n", num, div;
else
print
如何在match 上进行范围搜索结果在Awk?中
Googling/所以搜索了一个小时之后,没有发现任何东西,考虑到Awk的表现力,我认为必须有一个简单的方法来做到这一点。
下面是一个例子。
数据:
USA [Chicago] [Dallas]
France [Lyon] [Nice]
Italy
UK [London]
Awk脚本:
// {
printf "%s: " , $1
# Search for towns
match($0, /\[(.*)\]/, towns)
for (t in towns) {
printf "%s;", t
}
p
我只想在awk中实现if条件。我创建了一个文件名:"simple_if“,如下所示。
BEGIN{
num=$1;
if (num%2==0)
printf "%d is Even number.\n",num;
else printf "%d is odd Number.\n",num
}
然后,我通过传递10作为$1的参数来执行程序,如下所示
awk -f simple_if 10
但是它不接受输入,而是显示0。输出:
0 is Even number.
如何在awk中从用户那里获得价值?
我有两个文件
cat file1.txt
lspol > 8296
....
cat file2.txt
lspol 8297
...
如果file2.txt中第一列的数字大于file1.txt中第一列的数字,我将尝试获取输出
下面的命令运行得很好
# if column 1 of file1.txt is equal to column 1 of file2.txt and column 3 of file1.txt is greater than column 2 in file2.txt
awk '
{
getline buf <f2;
我在我的任务中遇到了一个困难,我想要一些澄清。
我有下面的代码,找到书的作者和标题(或部分标题,例如找到乐高战争六号,并返回2个结果/找到顺式手和找到3个结果)。但是,如果作者返回,则仅按标题查找。如果标题是返回的,只有作者才能找到。
当我必须使用awk同时找到作者和标题时,问题就来了。
有人能指导我使用search_both函数吗?问题是我无法搜索这两个字段并打印出结果。
例如。如果我要键入作者=乐高和标题=乐高战争VI,应该只有一个字段找到,这将打印出来。
乐高战争六-乐高遗产,乐高公司,15.98美元,20,15美元
#!/bin/bash
function s