标签: numeric-data

Bash 数字排序在同时选择列和一起选择列时给出不同的结果

对于以下示例数据,两列都是数字,但第二列的位数不同。

2 9
1 1000
1 50
3 0
Run Code Online (Sandbox Code Playgroud)

我想根据两列进行排序。用数字标志分别指定它们-n,产生我想要的结果。

sort -n -k1,1 -k2,2 num.data.txt
Run Code Online (Sandbox Code Playgroud)

1 50
1 1000
2 9
3 0
Run Code Online (Sandbox Code Playgroud)

这就是我想要的。

然而,

sort -n -k1,2 num.data.txt
Run Code Online (Sandbox Code Playgroud)

给出似乎按字母顺序排序的数据:

1 1000
1 50
2 9
3 0
Run Code Online (Sandbox Code Playgroud)

我知道这sort -n -k1,2 num.data.txtsort -n num.data.txt只有两列时(给出相同结果)相同,但我实际使用的数据有更多列。

为什么这两种方法之间存在这种差异?

sort numeric-data

2
推荐指数
1
解决办法
630
查看次数

Grep 仅数字,而不是字母数字条目

我有一个值列表,例如:

1
2
3
4
Ak123
Ak23
Ak147
1Apple
2Apricot
3Mango
4Orange
Run Code Online (Sandbox Code Playgroud)

我只想执行一个简单的 grep 命令来只列出数字。即1, 2,34。我试过这个命令 -

grep -Ein --color '^\s*[0-9]' test.txt
Run Code Online (Sandbox Code Playgroud)

但它也返回字母数字。相反,我尝试通过以下命令省略字符:

grep -Ein --color '^\s*[0-9][^A-Z]' test.txt
Run Code Online (Sandbox Code Playgroud)

但它给出了 0 个结果。

grep regular-expression numeric-data

2
推荐指数
1
解决办法
2万
查看次数

如何生成逗号分隔的随机整数列表

我正在尝试生成一个逗号分隔的1 到 10 之间整数的无序列表,我尝试了以下操作,但结果是一个有序列表:

seq -s "," 10 | shuf
Run Code Online (Sandbox Code Playgroud)

shell random numeric-data

2
推荐指数
3
解决办法
671
查看次数

如何将数字范围分配到一个简单的 bash 变量中

失败时如何将数字序列分配到 bash 变量中:

$ n={0..9}; echo $n
{0..9}
$ n=\"{0..9}\"; echo $n
"{0..9}"

$ eval n={0..9}; echo $n
$ eval n=\"{0..9}\"; echo $n
9

$ n=`eval {0..9}`; echo $n
bash: 0: command not found
Run Code Online (Sandbox Code Playgroud)

请指导正确的

bash numeric-data variable

2
推荐指数
1
解决办法
252
查看次数

排序浮点数和awk

考虑以下foo.dat包含 11 列的文件:

  893    1  754  946  193   96   96     293.164     293.164     109.115     70.8852
  894    1  755  946  192   95   96     291.892     292.219     108.994      70.821
  895    1  755  947  193   95   97     290.947     291.606     109.058     70.5709
  896    1  755  947  193   95   97     290.002     290.663     109.122     70.5053
  897    1  755  948  194   95   98     289.057     290.057     109.187     70.2532
  898    1  754  949  196   96   99     288.444     289.456      109.44          70
  899    1  754  950  197   96  100     287.501     288.862 …
Run Code Online (Sandbox Code Playgroud)

awk sort numeric-data

1
推荐指数
1
解决办法
1901
查看次数

如果数字是 12 位,sed 命令删除前导 91

如果数字是 12 位,sed 命令删除前导 91

我的文件是

919876543210
917894561230
9194561230
Run Code Online (Sandbox Code Playgroud)

需要输出

9876543210
7894561230
9194561230
Run Code Online (Sandbox Code Playgroud)

sed text-processing numeric-data

1
推荐指数
1
解决办法
193
查看次数

如何计算每个唯一条目的最大值和最小值

我需要找到文件中每个条目的最大值和最小值:

#subset of my file
NEUTRON   20.900103
PION-      0.215176
PION-     22.716532
NEUTRON    8.043279
PION+      1.374297
PION-      0.313350
PION+      0.167848
Run Code Online (Sandbox Code Playgroud)

当有多个条目名称时,如何循环遍历文件并找到每个名称的最小值和最大值。我已经使用 awk 来计算每个条目并且没有重复,但是每个名称的每个重复都包含一个数字,而该数字就是我试图过滤掉每个条目的最大值和最小值的数字。整个文件的 ex 输出:

Name         Count     Minimum        Maximum        
--------     -----     ---------      ---------      
KAON-            1      5.489958       5.489958      
NEUTRON          2      8.043279      20.900103      
PHOTON          10      0.034664       1.897264       
PION-            5      0.192247      22.716532       
PION+            7      0.167848       7.631051       
PROTON           1      1.160216       1.160216       
Run Code Online (Sandbox Code Playgroud)

awk numeric-data

1
推荐指数
1
解决办法
1342
查看次数

提取两个字符串模式之间的数字

我在每一行“年龄= 22 岁,身高= 6 英尺”中有一个具有以下表达式类型的文件,我只想提取年龄和身高数字。

我试过了

grep -oP  '(?<=Age=)[^years]+' $f | awk '{ printf "%d \n",$1; }
Run Code Online (Sandbox Code Playgroud)

并正确获取年龄。我怎样才能得到年龄和身高。当我尝试嵌套模式匹配时,我只得到高度。

这是我试过的模式

grep -oP  '(?<=Age=)[^years]+.+(?<=Height=)[^feet]+' $f | awk '{ printf "%d \n",$1; }
Run Code Online (Sandbox Code Playgroud)

scripting awk shell-script numeric-data

1
推荐指数
1
解决办法
463
查看次数

对数据进行排序以绘制圆

在这里,我有一个数据,我将使用 Gnuplot 用线条绘制该数据。使用代码

pl 'Sphere_ISOTEST_data.txt' w p
Run Code Online (Sandbox Code Playgroud)

我得到下图

这个

但是,使用

pl 'Sphere_ISOTEST_data.txt' w l
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

在此处输入图片说明

任何人都可以建议如何对数据进行排序,以便我可以绘制w l并仅获得圆的周长。

sort plotting gnuplot numeric-data

1
推荐指数
1
解决办法
86
查看次数

在数据点之前和之后插入零

我需要一个在每个数据点之前和之后插入零的脚本。我正在尝试在 Ubuntu 中执行此操作。

例子:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

我需要的:

0
1
0
0
2
0
0
3
0
0
4
0
0
5
0
Run Code Online (Sandbox Code Playgroud)

sed text-processing numeric-data

0
推荐指数
1
解决办法
155
查看次数