Questions tagged «numeric-data»

9
是否有unix命令给出两个数字的最小值/最大值?
我正在寻找一个命令来限制从中读取的数字stdin。 我为此目的编写了一个小脚本(欢迎批评),但我想知道是否没有针对此简单且(我认为)常见用例的标准命令。 我的脚本找到了至少两个数字: #!/bin/bash # $1 limit [ -z "$1" ] && { echo "Needs a limit as first argument." >&2; exit 1; } read number if [ "$number" -gt "$1" ]; then echo "$1" else echo "$number" fi


5
如何在Shell脚本中比较程序的版本?
假设我想比较gcc版本以查看系统是否安装了最低版本。 要检查gcc版本,我执行了以下命令 gcc --version | head -n1 | cut -d" " -f4 输出是 4.8.5 因此,我写了一个简单的if语句来对照其他值检查该版本 if [ "$(gcc --version | head -n1 | cut -d" " -f4)" -lt 5.0.0 ]; then echo "Less than 5.0.0" else echo "Greater than 5.0.0" fi 但这会引发错误: [: integer expression expected: 4.8.5 我理解我使用字符串进行比较并且-lt需要整数的错误。那么,还有其他方法可以比较版本吗?

1
如何阻止Bash解释八进制代码而不是整数?
我正在写一个Horoscope RSS脚本,作为Unix / Linux项目的介绍,但遇到一个问题,我的教授在下课后仍然无法解决。由于我无法弄清楚如何使用实际日期作为检查对象,因此我认为我将通过使用户输入为MMDD格式的标准数字来尝试基本算术。据他介绍,脚本似乎正在以八进制代码而不是整数形式读取输入。这是脚本示例: elif [ "$olddate" -gt 1121 ] && [ "$olddate" -lt 1131 ] || [ "$olddate" -gt 1200 ] && [ "$olddate" -lt 1222 ] then echo "You are Sagittarius" exit elif [ "$olddate" -gt 1221 ] && [ "$olddate" -lt 1232 ] || [ "$olddate" -gt …

13
如何用数字对一行分隔的项目进行排序?
我有一行(或多行)数字,这些数字由任意字符定界。我可以使用哪些UNIX工具对每一行的项目进行数字排序,并保留定界符? 示例包括: 数字列表;输入:10 50 23 42; 排序:10 23 42 50 IP地址; 输入:10.1.200.42; 排序:1.10.42.200 CSV; 输入:1,100,330,42; 排序:1,42,100,330 竖线分隔;输入:400|500|404; 排序:400|404|500 由于定界符是任意的,因此可以使用选择的单字符定界符随意提供(或扩展)答案。

6
反转bash中的十六进制数
是否有一个简单的命令来反转十六进制数? 例如,给定十六进制数: 030201 输出应为: 010203 使用该rev命令,我得到以下信息: 102030 更新资料 $ bash --version | head -n1 GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) $ xxd -version xxd V1.10 27oct98 by Juergen Weigert $ rev --version rev from util-linux 2.20.1

3
Bash扩展十六进制
我想知道是否存在一种使用bash扩展来查看十六进制数字组合的所有可能性的方法。我可以扩展二进制文件 在基地2: echo {0..1}{0..1}{0..1} 这回馈: 000 001 010 011 100 101 110 111 以10为基数: echo {0..9}{0..9} 这回馈: 00 01 02...99 但以十六进制表示: echo {0..F} 只需重复一下: {0..F}

2
comm:文件未排序
我曾经comm比较两个排序的文件。这些文件中的每一行都是正整数。但是结果显示 comm: file 1 is not in sorted order comm: file 2 is not in sorted order 即使对这两个文件进行了排序,也会出现错误?

2
从包含大于5000的数字的文本文件中复制每一行
嗨,我已经尝试过许多解决类似问题的方法,但似乎没有一种对我有用。我有一个文本文件,其中每一行在字符串“ length_”之后都有未定义的数字长度。如何选择该数字等于或大于5000的所有行?到目前为止,这是我尝试过的最干净的代码尝试,但是它仍然只会生成一个空文件(即使file1肯定包含数字大于5000的行) grep --regexp="length_\"[5-9][0-9]\{3,\}\"" file1.txt > file2.txt 输入文本文件内例如信息: /file/path/xx00:>TEXT_1_length_81903_cov_10.5145_ /file/path/xx01:>TEXT_2_length_348971_cov_13.6753_ /file/path/xx02:>TEXT_3_length_4989_cov_11.9516_ /文件/路径/ XX03:> TEXT_4_length_29811_cov_13。 7948_ /file/path/xx03:>TEXT_5_length_2567_cov_13.7948_ 输出文本文件中的所需示例信息: / file/ path / xx00 :> TEXT_1_length_81903_cov_10.5145_ /file/path/xx01:>TEXT_2_length_348971_cov_13.6753_ /file/path/xx03:>NODE_4_length_29811_cov_13.7948_

3
在包含数千列的文件中乘以特定列
in文件看起来像这样 -17.3644 0.00000000 0.00000000 .... -17.2703 0.00000000 0.00000000 .... -17.1761 0.00000000 0.00000000 .... -16.5173 0.00000000 0.00000000 .... -16.4232 0.00000000 0.00000000 .... 期望输出应为 -173.644 0.00000000 0.00000000 .... -172.703 0.00000000 0.00000000 .... -171.761 0.00000000 0.00000000 .... -165.173 0.00000000 0.00000000 .... -164.232 0.00000000 0.00000000 .... 所以我想将第一列乘以10,但同时还要保留其他1000列。与awk '{print $1*10}' infile > outfile您只打印第一列,我怎么能还保持其他列?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.