小编exs*_*c01的帖子

Gnuplot如何在每第n行绘制矩阵

我有以下数据

...
   10800    42.835282    2.0799322    9.6376456     14.69194     15.74205    16.591997    14.208506    17.036752    16.974312    30.759594    318.69734
   10900    59.608134    2.0319971    10.413494    17.136174    18.597465     19.31398     16.78688    19.939459    20.034195    43.809158     470.3118
   11000    71.147383    2.3502536    11.098845    19.525944    21.618026    22.255387    19.446565    22.871378    23.265609    60.717349    559.03537
   11100    70.844437    2.5290753    11.759208    21.795673     24.63466    25.294785    22.079689    25.788459    26.690083    80.472264    513.94945
...
Run Code Online (Sandbox Code Playgroud)

数据总共600行,12列.我想绘制从第3列到第12列的每第50行的逐行数据.我使用了绘图数据矩阵(因为[i = 3:12]没有像我预期的那样工作)

data = "data.dat"
plot data matrix every 1::2 w l
Run Code Online (Sandbox Code Playgroud)

这给了我想要的图(绘制每行的第3~12列),但绘制了所有600行的曲线.如何在每个1 :: 2命令中绘制此矩阵中的每50行,因此只显示12条曲线?

谢谢

ps)我刚刚使用sed命令自己解决了

plot '<sed -n "0~50p" data.dat' matrix every 1::2 w l
Run Code Online (Sandbox Code Playgroud)

plot gnuplot matrix

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

Python命令行参数 - 希望在没有参数时打印错误

我有一个简单的代码:

import sys, getopt

ifile=''
ofile=''

try:
    opts, args = getopt.getopt(sys.argv[1:],"h:i:o:")
except getopt.GetoptError as e:
    print (str(e))
    print("test.py -i input -o output")
    sys.exit(2)

for o, a in opts:
    if o == '-h':
       print 'test.py -i input -o output'
       sys.exit()
    elif o == '-i':
       ifile=a
    elif o == '-o':
       ofile=a
Run Code Online (Sandbox Code Playgroud)

我应该添加什么,如果我想在我执行以下脚本时打印错误(以及帮助)消息'test.py -i input -o output':

$ python test.py 
Run Code Online (Sandbox Code Playgroud)

谢谢

python

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

连续排序重复数据但行数不同

我有以下格式的数据:

2
1
A    11.364500   48.395199   40.160500         5
B    35.067699   30.944700   24.155300         4
4
2
A    26.274099   38.533298   32.624298         4
B    36.459000   29.662701   17.806299         5
A    15.850300   28.130899   24.753901         4
A    32.098000   33.665699   20.372499         4
5
3
A    17.501801   44.279202    8.005670         5
B    35.853001   43.095901   17.402901         4
B     1.326100   17.127600   39.600300         4
A     9.837760   41.103199   13.062300         5
B    31.686800   44.997501   16.619499         4
3
4
B    31.274700    8.726580   25.267599         4
A    19.032400   41.384701   19.456301         5
B    19.441900   24.286400    6.961680         4
1 …
Run Code Online (Sandbox Code Playgroud)

sorting awk split

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

使用sed或awk删除每n行以删除数据块

我有一个由316125000行组成的大文件.该文件由112500个数据块组成,每个数据块有2810行.

我需要减小文件的大小,所以我想留下第1个,第10个,第20个,第112490个和第112450个数据块,并删除所有其他数据块.结果这将给我11250个数据块.

这意味着我想要删除每个2811~28100行,并留下每1~2810和28101~30910 ....行.

我在考虑awk,sed或grep,但哪一个更快,我怎么能实现这一点?我知道如何使用awk和NR删除每一行或第三行,但我不知道如何重复删除大块行.

谢谢

最好,

bash awk grep sed

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

如何在 awk 命令替换中使用 bash 变量来分配另一个变量

我有 10 个文件名为

data_00
data_01
data_02
...
data_09
Run Code Online (Sandbox Code Playgroud)

数据文件的前 8 行如下所示:

Stamp_number
10
Item_number
9000
Position
5.1008068168967009e+00 5.4899193183110690e+01
5.1008068168967009e+00 5.4899193183110690e+01
5.1008068168967009e+00 5.4899193183110690e+01
Run Code Online (Sandbox Code Playgroud)

所有 10 个文件都具有相同的格式,但所有数字的值不同。

我希望使用 awk 为 10 个文件的第一列和第二列的第 6、7 和 8 行的值分配一个 bash 变量,并获得它们之间的差异。

for i in {00..09}; do
a=$(awk 'NR==6 {print $1}' data_$i)
b=$(awk 'NR==6 {print $2}' data_$i)
c=$(awk 'NR==7 {print $1}' data_$i)
d=$(awk 'NR==7 {print $2}' data_$i)
e=$(awk 'NR==8 {print $1}' data_$i)
f=$(awk 'NR==8 {print $2}' data_$i) 
val_ab=`bc -l <<< "$a-$b"`
val_cd=`bc -l <<< "$c-$d"`
val_ef=`bc …
Run Code Online (Sandbox Code Playgroud)

bash awk

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

如何在shell脚本中使用随机数?

使用shell脚本,我希望生成五个文件,并希望在每个文件中放置50000~150000的不同随机数范围.我试过像下面这样的东西,

for i in 01 02 03 04 05; do
A=$((50000+100000))
B=$(($B%$A))
cat > ${i}.dat << EOF
AArandom=$A
EOF
done
Run Code Online (Sandbox Code Playgroud)

但这不起作用....如何为每个文件制作随机数字并打印出来?

random shell

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

标签 统计

awk ×3

bash ×2

gnuplot ×1

grep ×1

matrix ×1

plot ×1

python ×1

random ×1

sed ×1

shell ×1

sorting ×1

split ×1