小编Duc*_*uck的帖子

试图在 bash 中乘以浮点数不起作用

我有这个脚本可以将图像重新缩放为百分比值

#!/bin/bash

percent=$1
echo $percent


for img in `find *.png`;
do
  echo Processing file $img
  width=$( mdls $img  | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2 )
  height=$( mdls $img | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2 )

  newWidth=$((width*percent))
  newHeight=$((height*percent))
  echo $newWidth $newHeight
  sips -z $newWidth $newHeight $img
done
Run Code Online (Sandbox Code Playgroud)

我的 bash 被配置为接受逗号作为小数点分隔符。

所以,我输入的乳清

rescale 0,3019
Run Code Online (Sandbox Code Playgroud)

我正在尝试将图像重新缩放到其值的 30.19%

问题是这条线

  echo $newWidth $newHeight
Run Code Online (Sandbox Code Playgroud)

向我展示了乘以 3019 的值。奇怪的是,第一个回声

echo $percent
Run Code Online (Sandbox Code Playgroud)

显示给我 0,3019(正确的值)

我错过了什么?

bash floating-point

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

我如何知道上次使用电子邮件的时间

我的服务器上有几封电子邮件被某些人使用。

有些是几年前创建的,我怀疑不再使用了。

通过 ftp 我看到文件夹

.Drafts
.Junk
.Sent
.spam
.Trash
cur
new
tmp
Run Code Online (Sandbox Code Playgroud)

和文件

dovecot-acl-list
dovecot-uidvalidity.53836d02
dovecot-uidvalidity
dovecot-keywords
subscriptions
courierimapsubscribed
courierimapacl
dovecot-quota
maildirsize
courierimapuiddb
dovecot.index.thread
dovecot.mailbox.log
dovecot.list.index
dovecot.index
dovecot-uidlist
dovecot.list.index.log
dovecot.index.log
dovecot.index.cache
Run Code Online (Sandbox Code Playgroud)

Date Modified这些文件中的任何一个都可以很好地指示电子邮件上次使用的时间吗?我所说的“使用”是指至少阅读过。

email

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

从终端检查 URL 重定向

我有一个服务器有很多我想检查的域重定向。

我不相信浏览器缓存域的方式,所以我不确定我是实时看到它还是从缓存中看到重定向。

有没有办法从终端测试重定向并在没有任何缓存的情况下看到真实的东西?

我试过了

curl -I http://example.com
Run Code Online (Sandbox Code Playgroud)

正如其他帖子所述,但它没有在我的 Mac 上提供任何重要信息。

它给了我这个:

HTTP/1.1 406 Not Acceptable
Date: Mon, 29 Jan 2018 18:26:50 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)

command-line cache curl

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

如何交换 JSON 文件中的两个数组元素

我有一个这样的文件

{"100":["0.00001","10","0.01"],
"101":["0.0001","100","0.1"],
"102":["1","1000","1"],
....
"103":["0.01","10000","10"]}
Run Code Online (Sandbox Code Playgroud)

我想将每个数组内的第二个数字与第三个数字交换,将其转换为

{"100":["0.00001","0.01","10"],
"101":["0.0001","0.1","100"],
"102":["1","1","1000"],
....
"103":["0.01","10","10000"]}
Run Code Online (Sandbox Code Playgroud)

如何做到这一点与sedawk或什么?

注意第一条和最后一条记录中存在{}

谢谢

sed awk perl json jq

2
推荐指数
1
解决办法
450
查看次数

对于文本文件的每一行,将分号后面的第一个字符设为大写

我有一个这样的文本文件

John Doe;john Doe is ...;he lives in ...
Mike Nelson;mike Nelson works for ...;he makes ...
Marcy William;marcy's mother is ...;marcy travels a lot... 
Run Code Online (Sandbox Code Playgroud)

我想将分号后面的每个字符都转换为大写,所以最终结果是

John Doe;John Doe is ...;He lives in ...
Mike Nelson;Mike Nelson works for ...;He makes ...
Marcy William;Marcy's mother is ...;Marcy travels a lot...
Run Code Online (Sandbox Code Playgroud)

保持其余的完好无损。

此文件包含带重音的字母并以 UTF-8 编码。

text-processing

2
推荐指数
3
解决办法
467
查看次数

获取网络钓鱼的重定向 URL

我今天收到了一个人渣发来的这封邮件。这是一个网络钓鱼,告诉我在此 URL 下载文件:

http://mes.org.my/home/tmp/comprovante/index1.php?Compprovante_Transferencia.pdf

这个 URL 重定向到另一个站点并下载一个 exe,可能是某个无辜者的服务器,或者不是。

浏览器会在短时间内闪烁其他 URL,不足以复制它。我想知道那是什么 URL,所以我可以向托管公司和网站所有者谴责它。

是否可以输入任何终端命令来捕获重定向 URL?

我试过 wget 没有成功。

谢谢

url

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

/etc/hosts 没有阻塞任何东西

我想用/etc/hosts我的Mac上阻止臭名昭著的人渣等网站mackeeper.com,并com-cleaner.systems从不断的弹出窗口再次加载。

在这样做时,我在我的hosts文件中找到了这些条目:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1        localhost
255.255.255.255  broadcasthost
::1              localhost
Run Code Online (Sandbox Code Playgroud)

所以我添加了这些...

127.0.0.1  mackeeper.com
127.0.0.1  www.mackeeper.com
127.0.0.1  mackeeperapp.zeobit.com
127.0.0.1  mackeeperapp2.mackeeper.com
127.0.0.1  *.mackeeper.com
127.0.0.1  activate.adobe.com
127.0.0.1  practivate.adobe.com
127.0.0.1  *.com-cleaner.systems
127.0.0.1  *.bet.pt
Run Code Online (Sandbox Code Playgroud)

即使在重新启动后,所有这些站点仍然可以正常加载。

我曾尝试也将同样的思路fe80::1%lo0::1没有成功。

有任何想法吗?

hosts

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

只替换一行中第一次出现的字符

我有一条包含数千行的行,如下所示:

{"100K";"0.00001";"10";"0.01"]}
{"101K";"0.0001";"100";"0.1"]}
{"102K";"1";"1000";"1"]}
{"102K";"1";"1000";"1"]}
{"103K";"0.01";"10000";"10"]}
{"104K";"0.1";"100000";"100"]}
{"105K";"1";"1000000";"1000"]}
{"109K";"0.000001";"1";"1"]}
{"120K";"0.000012";"12";"12"]}
Run Code Online (Sandbox Code Playgroud)

我想;:[

使这些线等于

{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}
Run Code Online (Sandbox Code Playgroud)

我如何使用 sed 或其他 unix 命令来做到这一点?

sed awk text-processing

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

如何在 Bash 历史记录中找到一个条目

当我打开 bash 并按向上箭头时,我会看到我输入的最后一个命令。继续按向上箭头将显示过去键入的一系列命令。

如何从该列表中找到一个特定命令,而不必按向上箭头 n 次?

bash

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

将 ] 后的第一个字母更改为大写

我有一个 CSV 文件,其中有数千行,如下所示:

bla bla blab [FR] john is bla bla
bla [US] blue house in Chicago...
[ES] accessing the safe... bla bla
Run Code Online (Sandbox Code Playgroud)

看到之间的元素[ ]?这些元素后面总是跟一个空格和一个新短语的开头。我想将空格后找到的第一个字母转换为大写,使文件像

bla bla blab [FR] John is bla bla
bla [US] Blue house in Chicago...
[ES] Accessing the safe... bla bla
Run Code Online (Sandbox Code Playgroud)

我如何从终端、使用、sed、awk 或其他方式做到这一点?

请解释解决方案,我想了解和学习。

谢谢。

sed awk perl text-processing

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

标签 统计

awk ×3

sed ×3

text-processing ×3

bash ×2

perl ×2

cache ×1

command-line ×1

curl ×1

email ×1

floating-point ×1

hosts ×1

jq ×1

json ×1

url ×1