使用bash交换列

时间:2016-10-28 18:54:47

标签: shell

我有一个包含两列的文件,例如

  • 10 25
  • 26 38
  • 40 62
  • 85 65
  • 88 96
  • 97 8

我希望第一列包含所有最小值,第二列包含所有最大值。像这样:

  • 10 25
  • 26 38
  • 40 62
  • 65 85
  • 88 96
  • 8 97

3 个答案:

答案 0 :(得分:0)

使用Python,它很简单:

_sumOfVs: function(changeRecord) {
  if (changeRecord.path.endsWith('.v')) {
    const sum = changeRecord.base.reduce((p,c) => p + Number(c.v), 0);
    console.log('sum', sum);
  }
}

你得到:

values = [
    (10, 25),
    (26, 38),
    (40, 62),
    (85, 65),
    (88, 96),
    (97, 8),
]

result = [(min(v), max(v)) for v in values]

使用bash ......我不知道:

[(10, 25), (26, 38), (40, 62), (65, 85), (88, 96), (8, 97)]

答案 1 :(得分:0)

我试过这个

#!/bin/sh

echo -n "Enter a file name > "
read name

if ["$1" -gt "$2"];
then 
awk ' {  t= $1; $1 = $2; $2=t ; print; } ' $name
fi
exit 0;

答案 2 :(得分:0)

希望这有帮助。

awk '{
if ($2 < $1 )
  print $2," "$1;
else
  print $1," "$2;
}' filename.txt

确保列空间分隔