小编R 9*_*000的帖子

将 csv 中的许多值四舍五入到小数点后 3 位(printf ?)

我有一个像这样的粘贴命令 paste -d , file1.csv file2.csv file3.csv

file2.csv 包含这样的数字

0.2
0.3339
0.111111
Run Code Online (Sandbox Code Playgroud)

我希望 file2.csv 中的值具有 3 位小数,如下所示:

0.200
0.334
0.111
Run Code Online (Sandbox Code Playgroud)

对于一个值,这是有效的:

printf "%.3f" "0.3339"->0.334

但对于 file2.csv 中的多个值,这不起作用:

paste -d , file1.csv <(printf %s "%.3f" "$(< file2.csv)") file3.csv

也许有一个好的解决方案?

csv printf paste

5
推荐指数
2
解决办法
906
查看次数

将一个文件中的空行替换为另一个文件中的行

我有file1.csv

"word 1"
""
"word 3"
""
"word 5"
"word 6"
Run Code Online (Sandbox Code Playgroud)

file2.csv

"replacement text 1"
"replacement text 2"
"replacement text 3"
"replacement text 4"
"replacement text 5"
"replacement text 6"
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个命令来检查 file1 中是否有空行(或带有“”的行),然后将其替换为 file2 的内容。

输出.csv应该是

"word 1"
"replacement text 2"
"word 3"
"replacement text 4"
"word 5"
"word 6"
Run Code Online (Sandbox Code Playgroud)

shell bash find csv replace

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

将两个文件的值相乘 - 但保留小数位

我有file1.txt

0.1234
0.333
0.22
0.1
Run Code Online (Sandbox Code Playgroud)

文件2.txt

2
10
100
100
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个命令,该命令可以将各行相乘,并输出与 file1.txt 在此位置/行一样多的小数位。 输出.txt

0.2468
3.330
22.00
10.0
Run Code Online (Sandbox Code Playgroud)

到目前为止我使用这个命令: paste file1.txt file2.txt | awk '{printf "%.4f", ($1 * $2)}' > output.txt 但是当然“%.4f”总是产生 4 个小数位......

awk shell-script

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

标签 统计

csv ×2

awk ×1

bash ×1

find ×1

paste ×1

printf ×1

replace ×1

shell ×1

shell-script ×1