一个文件中有两列,linux上用脚本怎么实现第一列相同的情况下把第二列用&符链接起来

一个文件中有两列,linux上用脚本怎么实现第一列相同的情况下把第二列用&符链接起来,第1张

sort -k 1,1 filea|awk '

BEGIN { first=1}

{if ($1==LAST)

{

      result=result&$2

      first=0

}

else if

{

      if (first==0)

      {

          print result

          result=$0

          first=1

      }

      first=0

}

}

END { print result}' > fileb

将filea中第二列拼接,输出至fileb文件中

#!/bin/bash

####/autorun/aa/yylog是原始数据的路径,自己替换,注意先删除第一行的enbid rsrp,最后结果会加上

count=`cat /autorun/aa/yylog|wc -l`

cat /autorun/aa/yylog|awk '{print $1}' > /autorun/aa/yy2log

let i=0

arr=()

while read line

do

arr[$i]=$line

let i=i+1

done < /autorun/aa/yy2log

len=${#arr[]}

let len=len-1

###进行冒泡排序

for((i=0;i<$len;i++))

do

let len=len-i

for((j=0;j<len;j++))

do

let k=j+1

if [ ${arr[$j]} -ge ${arr[$k]} ];then

temp=${arr[$k]};

arr[$k]=${arr[$j]};

arr[$j]=$temp;

fi

done

done

echo "enbid rsrp">/autorun/aa/yy3log

len=${#arr[]}

for((i=0;i<$len;i++))

do

echo "`cat /autorun/aa/yylog|grep ''${arr[$i]}''`">>/autorun/aa/yy3log

done

如果间隔符固定,并且列与列之间只有一个间隔符的话,间隔符为空格的话,个数无限定。

那么可以用下面这句来实现,就是判断第三列是否为空,如果为空,输出结果

awk -F'\t' '{ if($3=="")print$0}'

如果间隔符不是制表符,可以删除-F'\t'

以上就是关于一个文件中有两列,linux上用脚本怎么实现第一列相同的情况下把第二列用&符链接起来全部的内容,包括:一个文件中有两列,linux上用脚本怎么实现第一列相同的情况下把第二列用&符链接起来、Linux中怎么对第一列排序,然后输出的结果把第二列的数据带上。、linux shell中 如何将只含有两列信息的行提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9636953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存