- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我需要帮助在同一行中使用 xargs(1) 和 bc(1)。我可以多行解决,但我真的想在一行中找到解决方案。
这里是问题所在:以下行将打印 file.txt
ls -l file.txt | cut -d" " -f5
并且,下一行将打印 1450
(显然是 1500 - 50)
echo '1500-50' | bc
尝试将这两者相加,我这样做:
ls -l file.txt | cut -d" " -f5 | xargs -0 -I {} echo '{}-50' | bc
问题是,它不起作用! :)
我知道 xargs 可能不是正确的命令,但它是我能找到的唯一可以让我决定将从管道获取的参数放在哪里的命令。
这不是我第一次遇到此类问题。这将是一个很大的帮助..
谢谢
最佳答案
如果你这样做
ls -l file.txt | cut -d" " -f5 | xargs -0 -I {} echo '{}-50'
你会看到这个输出:
23
-50
这意味着 bc
没有看到完整的表达式。
只需使用 -n 1
而不是 -0
:
ls -l file.txt | cut -d" " -f5 | xargs -n 1 -I {} echo '{}-50'
你得到了
23-50
哪个 bc
会愉快地处理:
ls -l file.txt | cut -d" " -f5 | xargs -n 1 -I {} echo '{}-50' | bc
-27
所以您的基本问题是,-0
不需要行,而是 \0
终止字符串。因此,管道中先前命令的换行符会混淆 bc 的表达式。
关于linux - 为什么 bc 和 args 不能在一行中一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906341/
我试图在多台主机上运行这个脚本,但它们没有安装 bc。 我读到你可以使用类似“awk 'BEGIN {print...}' 的东西,但我无法让它工作。 #!/bin/bash nproc=$(npro
我试图找到一个正则表达式来匹配具有字符串“question”但不具有或不包含字符串“ion”的所有字符组合。 例子: questionxxxx ------>匹配 xxxquestion-------
我可以使用 Python 运行 bc,代码如下: subprocess.Popen("bc", stdout=subprocess.PIPE).communicate()[0] 但是,这只会启动 bc
我们使用API在Dynamic 365 BC中处理采购数据,以更新、接收和开具采购订单行。(Dynamic 365插件在不使用文件的情况下解析附注附件XML)我们现在希望将发票文档作为附件上传到采购发
我正在尝试使用 bc 将我的数字计算缩放到一位小数(所有适用的四舍五入) linux下的命令。这是我的测试表达式: echo "scale 1; 90 - 70.333" | bc 但是,我最终得到了
jack 10 10号 A 20 卢卡20 A Bc U 20 我想得到这些数字的总和:10 + 10 + 20 + 20 + 20 = 80 但是我不能使用cat input|cut -d " "
我正在用 C# 实现一些东西,对此我有一个单独的规范,并且对我需要做什么有相当清楚的了解,但同时作为引用,我有一个 Java 实现,并且希望遵循以下中的 Java 实现我尽可能接近这个案例。 该代码涉
我正在尝试将 32 个字符长的十六进制字符串(例如:A41EB86E184207262C12F66E7C480577)转换为二进制。我正在使用: echo "ibase=16; obase=2; $l
我正在尝试编写一个 bash 脚本,我需要做一些 float 学运算。基本上我想做这样的事情: NUM=$(echo "scale=25;$1/10" | bc) if [ $? -ne 0 ] th
这是我的 netstat 命令的输出。我想计算第一个字段的总数,例如 7+8+1+1+1+1+3+1+2..so on... 我如何使用 bc 或任何其他方法命令来计算它们的总数? [root@exa
我希望以 6 十六进制值格式返回以下十六进制... [admin@X~]$ echo "obase=16; 16777215" | bc FFFFFF [admin@X~]$ echo "obase=
您好,我有一个脚本,用于计算从服务器返回的一组值的标准偏差。 我可以轻松检索命令并使用命令构建有效的字符串。 bc <<< "scale=10; sqrt((0+((782636-782030)^2)
我不明白为什么 bc 工具有时会忽略比例选项。 这是一个例子: > echo 'scale=2; 2.777 - 1.4744' | bc 1.3026 预期结果是: 1.30 附加信息: > bas
我正在尝试使用“bc”在 Bash 脚本中实现以下计算,但“scale”选项产生的结果不正确,末尾有 2 个额外的零,这意味着我必须手动修剪它(丑陋). 计算: ((2592000-239)÷2592
我正在使用 bc从 bash 脚本来做一些快速而肮脏的 BigInteger 数学运算,但是,当我提高比例时,它开始在我身上分割线: pax> echo 'scale=200 ; 1 / 4' | b
我想计算一个数字的对数(以 10 为底)。如何使用 bc 执行此操作? 最佳答案 使用 -l 选项调用 bc(以启用数学库),如下所示: $ echo 'l(100)/l(10)' | bc -l 2
我在 GitHub 上发现了术语“BC Break”——它是什么意思? 最佳答案 “BC 中断”通常意味着 backward compatibility笼统地说,但正如 David Schwartz
对于大型输出,unix 中的 bc 实用程序以这种格式提供输出: $ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006
我想显示例如ac年份为1999年12月31日,BC年份为2000年12月31日(-)。我花了一些时间研究 joda api,例如像这样: new DateTimeFormatterBuilder().
#! /bin/sh a1=260 a2=9150 echo "$a1 * 100 / $a2" | bc 输出是 2 它应该在哪里 2.8415 为什么我在使用 bc 时精度会丢失? 最佳答案 试试
我是一名优秀的程序员,十分优秀!