以下是一个示例代码,使用awk来交换列并有条件替换另一列:
假设我们有一个包含三列的文件,第一列是姓名,第二列是年龄,第三列是性别。我们想要交换第二列和第三列,并且如果年龄小于等于30岁,将性别替换为"男",否则替换为"女"。
文件内容如下:
John 25 M
Jane 35 F
Mike 28 M
使用以下命令可以实现所需的功能:
awk '{temp=$2; $2=$3; $3=temp; if($2<=30) $3="M"; else $3="F"; print}' 文件名
输出结果如下:
John M 25
Jane F 35
Mike M 28
解释:
temp=$2 将第二列的值存储在临时变量temp中。$2=$3 将第三列的值赋给第二列。$3=temp 将临时变量的值赋给第三列。if($2<=30) $3="M" 如果第二列的值小于等于30,将第三列的值替换为"M"。else $3="F" 如果第二列的值大于30,将第三列的值替换为"F"。print 打印每一行的结果。这样,我们就实现了交换列并有条件替换的功能。