我有以下数据
...
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) 我有一个简单的代码:
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)
谢谢
我有以下格式的数据:
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) 我有一个由316125000行组成的大文件.该文件由112500个数据块组成,每个数据块有2810行.
我需要减小文件的大小,所以我想留下第1个,第10个,第20个,第112490个和第112450个数据块,并删除所有其他数据块.结果这将给我11250个数据块.
这意味着我想要删除每个2811~28100行,并留下每1~2810和28101~30910 ....行.
我在考虑awk,sed或grep,但哪一个更快,我怎么能实现这一点?我知道如何使用awk和NR删除每一行或第三行,但我不知道如何重复删除大块行.
谢谢
最好,
我有 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) 使用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)
但这不起作用....如何为每个文件制作随机数字并打印出来?