我有一长串的零和零:
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
....
Run Code Online (Sandbox Code Playgroud)
我可以很容易地得到1之间的平均零数(只有总数/ 1):
ones=$(grep -c 1 file.txt)
lines=$(wc -l < file.txt)
echo "$lines / $ones" | bc -l
Run Code Online (Sandbox Code Playgroud)
但是如何在两者之间获得零串的长度呢?在上面的简短示例中,它将是:
3
5
5
2
Run Code Online (Sandbox Code Playgroud) 我有一个矩阵,output.dat:
0 0 0 0 0 0 3 7 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 11 16 6 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 7 8 4 16 4 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 2 5 11 3 1 0 0 0 0 0 0 0 0 …
Run Code Online (Sandbox Code Playgroud) 我有一个文件test.dat:
A 1.00 11
AT 2.00 12
ARE 3.00 13
Run Code Online (Sandbox Code Playgroud)
如果我在第三列上执行某些操作并将其写入文件
x=readdlm("test.dat")
x[:,3]=x[:,3]*2
writedlm("test2.dat",x)
A 1 22
AT 2 24
ARE 3 26
Run Code Online (Sandbox Code Playgroud)
反正有没有得到这个输出?
A 1.00 22
AT 2.00 24
ARE 3.00 26
Run Code Online (Sandbox Code Playgroud)
我理解如何在其他数据上使用@printf做类似的事情,但它不适用于数组.
我有一个文件,example.txt
0
A
B
C, C, C
D, D
E
F
1
A, A, A
B
C
2
A
B
C
D, D, D
E
Run Code Online (Sandbox Code Playgroud)
我需要根据任何数字分离文件,然后在这些数字之间取内容并将它们连接成一行,为文件的每个部分重复该过程:
A, B, C, C, C, D, D, E, F
A, A, A, B, C
A, B, C, D, D, D, E
Run Code Online (Sandbox Code Playgroud)
我提出的最好的是:
cat example.txt | sed -e '1,/^[0-9]/d' -e '/^[0-9]/,$d' | paste -sd "," -
A, A, A, B, C
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这只是中间部分.那,或将所有部分打印到一行.