我有一个文本文件:
ifile.txt
1 4 22.0 3.3 2.3
2 2 34.1 5.4 2.3
3 2 33.0 34.0 2.3
4 12 3.0 43.0 4.4
Run Code Online (Sandbox Code Playgroud)
我想将其转换为csv文件:
ofile.txt
ID,No,A,B,C
1,4,22.0,3.3,2.3
2,2,34.1,5.4,2.3
3,2,33.0,34.0,2.3
4,12,3.0,43.0,4.4
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个,但没有得到结果.
(echo "ID,No,A,B,C" ; cat ifile.txt) | sed 's/<space>/<comma>/g' > ofile.csv
Run Code Online (Sandbox Code Playgroud) 如何使用没有文件的awk进行打印.
script.sh
#!/bin/sh
for i in {2..10};do
awk '{printf("%.2f %.2f\n", '$i', '$i'*(log('$i'/('$i'-1))))}'
done
Run Code Online (Sandbox Code Playgroud)
sh script.sh
Desired output
2 value
3 value
4 value
and so on
Run Code Online (Sandbox Code Playgroud)
value表示计算后的数量
我有一个列格式的网格数据文件:
ifile.txt
x y value
20.5 20.5 -4.1
21.5 20.5 -6.2
22.5 20.5 0.0
20.5 21.5 1.2
21.5 21.5 4.3
22.5 21.5 6.0
20.5 22.5 7.0
21.5 22.5 10.4
22.5 22.5 16.7
Run Code Online (Sandbox Code Playgroud)
我想将其转换为矩阵格式为:
ofile.txt
20.5 21.5 22.5
20.5 -4.1 1.2 7.0
21.5 -6.2 4.3 10.4
22.5 0.0 6.0 16.7
Run Code Online (Sandbox Code Playgroud)
top 20.5 21.5 22.5表示y,side值表示x,内部值表示相应的网格值.
我在这里找到了一个类似的问题将3列文件转换为矩阵格式,但脚本在我的情况下不起作用.
脚本是
awk '{ h[$1,$2] = h[$2,$1] = $3 }
END {
for(i=1; i<=$1; i++) {
for(j=1; j<=$2; j++)
printf h[i,j] OFS
printf "\n" …Run Code Online (Sandbox Code Playgroud) 我想计算15个文件的平均值: - ifile1.txt,ifile2.txt,.....,ifile15.txt.每个文件的列数和行数相同.部分数据看起来像
ifile1.txt ifile2.txt ifile3.txt
3 5 2 2 . 1 2 1 3 . 4 3 4 1 .
1 4 2 1 . 1 3 0 2 . 5 3 1 5 .
4 6 5 2 . 2 5 5 1 . 3 4 3 1 .
5 5 7 1 . 0 0 1 1 . 4 3 4 0 .
. . . . . . . . . . . . . . …Run Code Online (Sandbox Code Playgroud) 我有一个矩阵。ega 10 x 15矩阵
$ cat input.txt
2 3 4 5 10 0 2 2 0 1 0 0 0 1 0
0 3 4 6 2 0 2 0 0 0 0 1 2 3 40
0 0 0 2 3 0 3 0 3 1 2 3 1 0 0
1 2 0 4 0 3 4 0 4 1 2 0 0 1 1
0 0 0 0 0 0 10 3 4 12 4 5 12 …Run Code Online (Sandbox Code Playgroud) 我不能在这个命令中弄错我:
a=2
b=5
c=3
printf "%.2f\t" "'$a'+'$c'*'$b'" > ofile.txt
Run Code Online (Sandbox Code Playgroud)
我得到的值为50.00.但我应该得到17.00.
当a,b,c是浮动值时如何做到这一点?例如a = 2.4,b = 5.1和c = 3.2
我有一个包含三列(ID 号、x、y)的文件
ifile.txt
1 32.2 21.4
4 33.2 43.5
5 21.3 45.6
12 22.3 32.5
32 21.5 56.3
43 33.4 23.4
44 23.3 22.3
55 22.5 32.4
Run Code Online (Sandbox Code Playgroud)
我想在第 2 列和第 3 列上做一个循环,这样读起来就像
for x=32.2 and y=21.4; do execute a fortran program
for x=33.2 and y=43.5; do execute the same program
and so on
Run Code Online (Sandbox Code Playgroud)
尽管我的以下脚本正在运行,但我需要以有效的方式使用它。
s1=1 #serial number
s2=$(wc -l < ifile.txt) #total number to be loop
while [ $s1 -le $s2 ]
do
x=$(awk 'NR=='$s1' {print $2}' ifile.txt)
y=$(awk 'NR=='$s1' …Run Code Online (Sandbox Code Playgroud) 我想在12小时后执行一个脚本.我可以通过远程访问来执行脚本,但问题是我将乘飞机旅行并且可能无法访问互联网.所以我想知道是否有一些命令在几个小时后或某个特定时间执行脚本.例如,
cat my_script.sh
echo Hello World
run my_script.sh at 23:00 hr
Run Code Online (Sandbox Code Playgroud) 我有一个包含 120 列的文件。其中一部分在这里,有 12 根柱子。
A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3
4 4 5 2 3 3 2 1 9 17 25 33
5 6 4 6 8 2 3 5 3 1 -1 -3
7 8 3 10 13 1 4 9 -3 -15 -27 -39
9 10 2 14 18 0 5 13 -9 -31 -53 -75
11 12 1 18 23 -1 6 17 -15 -47 -79 -111
13 14 0 …Run Code Online (Sandbox Code Playgroud) 我的部分数据文件看起来像
ifile.txt
1
1
3
0
6
3
0
3
3
5
Run Code Online (Sandbox Code Playgroud)
我想找出除零之外的每个数字的概率.例如P(1)= 2/8; P(3)= 4/8,依此类推
欲望输出
ofile.txt
1 0.250
3 0.500
5 0.125
6 0.125
Run Code Online (Sandbox Code Playgroud)
第1列显示除0和第2列之外的唯一数字显示概率.我正在尝试如下,但看起来非常冗长的想法.我在for循环中遇到问题,因为有很多唯一的数字
n=$(awk '$1 > 0 {print $0}' ifile.txt | wc -l)
for i in 1 3 5 6 .....
do
n1=$(awk '$1 == $i {print $0}' ifile.txt | wc -l)
p=$(echo $n1/$n | bc -l)
printf "%d %.3f\n" "$i $p" >> ofile.txt
done
Run Code Online (Sandbox Code Playgroud)