问题列表 - 第5503页

从字符串中收集字符并打印它们的 unicode

上下文(如果你不在乎,请跳过;如果你怀疑我完全走错了路,请阅读)

\n

对于内存较小的嵌入式系统,我想生成仅包含实际需要的字形的字体。因此,在构建时,我需要扫描语言文件,从字符串中提取字符并使用它们的代码作为字体生成工具的参数。

\n

包含相关字符串的翻译文件(当然,这只是一个例子,但至少它涵盖了一些 unicode 内容)

\n
TEXT_1=Foo\nTEXT_2=Bar\nTEXT_3=Baz\nTEXT_4=\xc3\x9cnic\xc3\xb8d\xc3\xa9\nTEXT_5=\xce\xb5\xce\xbb\xce\xbb\xce\xb7\xce\xbd\xce\xb9\xce\xba\xce\xac\n
Run Code Online (Sandbox Code Playgroud)\n

预期产出

\n
0x42,0x61,0x72,0x42,0x61,0x7A,0x46,0x6F,0x6F,0xDC,0x6E,0x69,0x63,0xF8,0x64,0xE9,0x3B5,0x3BB,0x3BB,0x3B7,0x3BD,0x3B9,0x3BA,0x3AC\n
Run Code Online (Sandbox Code Playgroud)\n

到目前为止我的方法

\n

该脚本只是执行我所描述的操作:sed读取文件,提取字符串,并准备将其格式化printfsort -u删除重复项:

\n
for char in $(sed "s/[^=]*=//;s/./'& /g" myLang.translation|sort -u); do\n  printf "0x%02X\\n" $char\ndone\n
Run Code Online (Sandbox Code Playgroud)\n

这适用于这个例子,但感觉丑陋、不可靠、错误,对于真实文件来说可能很慢,所以你能说出一个更好的工具、更好的方法、更好的东西吗?

\n

character-encoding shell-script text-processing sort unicode

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

grep 具有不同数量的匹配组的多个模式?

我正在尝试统计 git diff 的插入和删除。

我有以下内容,当通过管道传输一个或多个形式的字符串时"4 files changed, 629607 insertions(+), 123 deletions(-)"可以计算总数:

grep -Eo 'changed, ?(\d+) insertion.*(\d+) deletion' | awk '{ i+=$2; d+=$4 } END { print "insertions: ",i," deletions: ",d }'
Run Code Online (Sandbox Code Playgroud)

这会产生insertions: 629607 deletions: 123

然而,有时 diff 并不遵循上述格式,而是只有插入或只有删除。

在这些情况下,我不需要匹配两个数字,而只需要匹配一个(并确保它最终出现在右列中)。

如何创建一个足够灵活的正则表达式来处理这些变化,并且生成可以awk正确计数的输出?

grep awk regular-expression pattern-matching

4
推荐指数
3
解决办法
665
查看次数

docker run cap-drop=net_bind_service 仍有 nginx 在端口 80 上运行

docker run --rm --cap-drop=net_bind_service --publish 8080:80 --name nginx nginx

ps --forest -fC nginx
UID          PID    PPID  C STIME TTY          TIME CMD
root      449870  449847  0 12:38 ?        00:00:00 nginx: master process nginx -g daemon off;
101       449929  449870  0 12:38 ?        00:00:00  \_ nginx: worker process
101       449930  449870  0 12:38 ?        00:00:00  \_ nginx: worker process
101       449931  449870  0 12:38 ?        00:00:00  \_ nginx: worker process
101       449932  449870  0 12:38 ?        00:00:00  \_ nginx: worker process
101 …
Run Code Online (Sandbox Code Playgroud)

nginx capabilities docker

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

如果满足条件,则使用 sed 将字符串附加到第二列

CSV 文件:

A,12345,hello
B,67890,hi
A,123456,yo
Run Code Online (Sandbox Code Playgroud)

预期输出:如果第一列是:,则应在第二列末尾添加两个零A

A,1234500,hello
B,67890,hi
A,12345600,yo
Run Code Online (Sandbox Code Playgroud)

text-processing csv

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

安装 Docker 本身有风险吗?- 创建 docker 组的可能性

在弄清楚如何管理项目的 python 环境时,我正在考虑使用 Docker容器。我意识到 Debian wiki与其他在线资源一样对 Docker 群组的风险发出了警告。但我不太确定:

安装 Docker 后创建 Docker 组的可能性本身是否会带来风险?

换句话说,如果我不创建一个组,或者将自己添加到一个组中(注意:我是唯一的用户),那么按照他们的博客的建议安装 Docker 并使用它来管理环境是否存在风险?

但是,在同一环境中进行多个项目很快就会成为一个问题,因为我们可能会遇到配置或依赖项冲突。此外,当与队友共享项目时,我们还需要协调我们的环境。为此,我们必须以易于共享的方式定义项目环境。

一个好方法是为每个项目创建独立的开发环境。通过使用容器和 Docker Compose 来管理它们,可以轻松完成此操作。

编辑:哎呀,我刚刚发现我可能重复了docker 安装了一个巨大的安全漏洞吗?

docker

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

为什么有时会在 ZIP 文件中明确列出目录?

在构建提取 ZIP 文件的应用程序时,我注意到有时 ZIP 文件明确包含目录条目,有时则不包含。例如给出以下结构

\n
folder1/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file1\n
Run Code Online (Sandbox Code Playgroud)\n

我发现通过以下方式列出内容时给出以下不同输出的文件unzip -lv file.zip

\n
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name\n--------  ------  ------- ---- ---------- ----- --------  ----\n       5  Stored        5   0% 2023-04-20 13:54 3bb935c6  folder1/file1\n--------          -------  ---                            -------\n       5                5   0%                            1 file\n
Run Code Online (Sandbox Code Playgroud)\n
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name\n--------  ------  ------- ---- ---------- ----- --------  ----\n       0  Stored        0   0% 2023-04-20 13:54 00000000  folder1/\n       5  Stored        5   0% 2023-04-20 13:54 3bb935c6  folder1/file1\n--------          -------  --- …
Run Code Online (Sandbox Code Playgroud)

zip

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

如何在 Alpine 3.17 虚拟机上安装 sudo?

我已在 KVM 下的虚拟机上安装了 Alpine r3.17。我想安装sudo工具。

# su -
# apk update
   ... 
OKL 4994 distinct packages available
# apk add sudo 
ERROR: unable to select packages:
  sudo (no such package):
    required by: world[sudo]
Run Code Online (Sandbox Code Playgroud)

检查 Alpine 网站后,我看到sudo是一个有效的包:

适用于版本 3.17。我也在网上看到了 r3.16 的类似问题,所以我认为这不是一个新问题。是的,对于虚拟机,而不是容器,我确实希望在关键机器上使用 sudo。

但还是apk没有找到。到目前为止我看过的所有地方都显示安装命令,例如:

# apk add sudo 
Run Code Online (Sandbox Code Playgroud)

例如:

我想知道“世界”是否相关,例如:“ required by: world[sudo] …

virtual-machine sudo alpine-linux apk-tools

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

如何通过键将值收集到数组中?

给定条目格式的输入,可能具有重复的键,例如

[
  {"key": "a", "value": 0},
  {"key": "a", "value": 1},
  {"key": "a", "value": 2},
  {"key": "b", "value": 3},
  {"key": "b", "value": 4},
  {"key": "b", "value": 5}
]
Run Code Online (Sandbox Code Playgroud)

我想生产

{"a": [0, 1, 2], "b": [3, 4, 5]}
Run Code Online (Sandbox Code Playgroud)

即,针对每个唯一键将具有相同键的所有值收集在数组中。

我怎样才能做到这一点jq

text-processing json jq

7
推荐指数
2
解决办法
1244
查看次数

Linux 睡眠命令 - 睡眠时间少于 1 毫秒

如何才能让睡眠时间小于0.001s/1ms?

如果我使用这个,它会显示它只休眠 1 毫秒。可以少睡一点吗?

$ time sleep 0.00001
sleep 0.00001  0,00s user 0,00s system 79% cpu 0,002 total
Run Code Online (Sandbox Code Playgroud)

linux sleep command

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

将固定宽度文件转换为 CSV 并删除尾随空格

我的输入文件是:

$ cat -e myfile.txt 
999a bcd efgh555$
 8 z         7  $
1  xx xx xx  48 $
Run Code Online (Sandbox Code Playgroud)

我需要一个列中没有尾随空格的 CSV:

999,a bcd efgh,555
 8,z,7
1,xx xx xx,48
Run Code Online (Sandbox Code Playgroud)

到目前为止,我成功地在需要的地方添加了昏迷:

$ gawk '$1=$1' FIELDWIDTHS="3 10 3" OFS=, myfile.txt
999,a bcd efgh,555
 8 ,z         ,7  
1  ,xx xx xx  ,48 
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除尾随空格?

编辑:数据中可能已经有逗号,所以我需要:(i)将字段用双引号括起来,(ii)使用\"(或""根据RFC 4180)转义字段中可能已经存在的双引号。例如,a,aab"bbccc-> "a,aa","b\"bb","ccc"

  • 我可以使用gawk(不仅awk
  • 我对任何其他解决方案持开放态度(例如perl)。
  • 我需要一个有效的解决方案(例如不是gawk ... | sed ...),因为我有很多大文件要处理。
  • 我知道字段宽度,因此不需要FIELDWIDTHS自动计算。

text-processing csv

8
推荐指数
2
解决办法
1005
查看次数