AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[string](unix)

Martin Hope
Kokizzu
Asked: 2023-07-07 02:24:16 +0800 CST

扁平化 yaml 的工具

  • 7

有没有一个工具可以扁平化 yaml 结构,如下所示:

foo:
  bar:
    baz: true

进入这个:

foo.bar.baz = true

不确定这个语法名称是什么

上下文:我需要 hcl,设置很多值,如下所示:

set {
  name = "foo.bar.baz"
  value = false
}

这是针对terraform中的helm-provider,不能直接使用json或yaml,必须一一设置你想要更改的属性(我需要禁用很多东西来检查为什么它不起作用)。

string
  • 2 个回答
  • 110 Views
Martin Hope
Heime
Asked: 2022-11-29 10:13:00 +0800 CST

受 lisp 启发的 bash 多行文档

  • 5

我想打印一些功能的一些使用信息。我习惯于为每一行使用echo或printf。

  echo "-V, --version"
  echo "   Display the version number and copyrights of the invoked tool."
  echo "-u, --usage"
  echo "   Provides brief information on how to use this tool."
  echo "-h, --help"
  echo "   Print a description of the command-line options understood by"

最近我一直在查看列表,其中可以设置一个长的多行字符串。

(defun myfunc ()
  "-V, --version
   Display the version number and copyrights of the invoked tool.
-u, --usage
   Provides brief information on how to use this tool.
-h, --help
   Print a description of the command-line options understood by"

  (commands-here))

我想对 bash 脚本的打印文档做同样的事情(就像在 lisp 中一样)。我能做些什么来实现同样的目标?

string
  • 2 个回答
  • 27 Views
Martin Hope
Kobby
Asked: 2022-09-17 20:30:01 +0800 CST

为什么我的 10 个随机字节的文件大于 10 个字节?

  • -2

所以我使用命令生成了一个 10 字节的随机字符串openssl rand -hex 10 > result。我的问题是为什么生成的文件有 21 个字节的大小?我没有加密,所以我不期待任何形式的填充。

string openssl
  • 1 个回答
  • 49 Views
Martin Hope
Dennis Williamson
Asked: 2022-06-29 15:34:41 +0800 CST

awk substr 索引 0

  • 0

我刚刚发现substr()在 awk 中接受 0 或 1 作为字符串中的初始索引。我在 Gawk 5.1.0 和 MacOS awk 20070501 中对此进行了测试。

awk 'BEGIN {print substr("abcd", 0, 1)}'

输出“a”,同样如此

awk 'BEGIN {print substr("abcd", 1, 1)}'

和

awk 'BEGIN {print substr("abcd", 2, 1)}'

输出“b”只是为了证明没有明显错误。

除了提到 1 索引之外,我在man页面或 Gawk文件中没有看到任何内容。info

为了与文档保持一致,并考虑index()到第一个位置返回 1 和不匹配返回 0 的事实,始终使用 1 是一个好策略。

我的问题是为什么会出现这种二元性?另外,它是否记录在某处?是否有其他 awk 实现可以做到这一点?

awk string
  • 2 个回答
  • 133 Views
Martin Hope
DEKKER
Asked: 2022-06-25 03:53:06 +0800 CST

如何在 bash 脚本中正确换行和连接字符串

  • 0

我有一个 Bash 脚本,它具有记录时间和状态消息的功能,我只想保留我的脚本 80 列:

#!/bin/bash

log_message() {
  echo "[$(date)]-[$1] : $2" >> log.txt
}

varName="John Doe"

# line break to not exceed 80 columns
log_message "WARNING" "I am "${varName}" and i want to limit this line \
to 80 columns"

日志文件中的结果与预期不符:

[Fri Jun 24 13:50:12 CEST 2022]-[WARNING] : I am John

在 Bash 中这样做的正确方法是什么?

bash string
  • 2 个回答
  • 48 Views
Martin Hope
Ashar
Asked: 2022-03-28 14:04:48 +0800 CST

在找到子字符串匹配时搜索并替换以空格分隔的字符串

  • -1

以下是示例文件内容:

猫样本.txt

-server -XX:+UseParallelGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+AggressiveHeap -XX:+PrintHeapAtGC -Djava.util.logging.FileHandler.limit=12908998 -XX:ParallelGCThreads=4 -Xms1536m -Xmx1536m -Xmn512m -Xss4m -XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=3 -XX:SurvivorRatio=20 -Dweblogic.SocketReaders=10

在一个单独的映射文件中,我得到了一个字符串列表,其中一个是-Djava.util.logging.FileHandler.limit. 如果找到此字符串,则应将其连同其值一起删除。

因此,我希望删除整个条目(连同它的值)-Djava.util.logging.FileHandler.limit=12908998

我可以-Djava.util.logging.FileHandler.limit通过替换-Djava.util.logging.FileHandler.limit为 null 来删除,如下所示:

sed -e s/-Djava.util.logging.FileHandler.limit//g -i sample.txt

由于正则表达式\S*\s让我尝试了用空格分隔的整个字符串,但以下尝试失败了:

sed -e s/-Djava.util.logging.FileHandler.limit\S*\s//g -i sample.txt

但我不确定如何删除它的价值,即-Djava.util.logging.FileHandler.limit=12908998

期望的输出:

猫样本.txt

-server -XX:+UseParallelGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+AggressiveHeap -XX:+PrintHeapAtGC -XX:ParallelGCThreads=4 -Xms1536m -Xmx1536m -Xmn512m -Xss4m -XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=3 -XX:SurvivorRatio=20 -Dweblogic.SocketReaders=10
files string
  • 1 个回答
  • 45 Views
Martin Hope
krave
Asked: 2022-02-14 12:29:28 +0800 CST

我该怎么用!用 \ 将命令包装在 bash 中?

  • 0

我处于无法为我的案件找到解决方案的情况。

我需要在 bash 中运行一个长命令,比如:

node -p "const db = {1:1, 2:2};Object.keys(db).sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})"

由于这个命令比较长,我试着用它\来包装我的命令。像这样:

node -p "const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})"

但它抱怨说

bash: !isNaN: event not found

我发现类似于这个问题

所以我尝试替换"为':

node -p 'const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})'

但这一次,\被认为是命令的一部分,实际上没有意义,因为我只想包装我的命令。

我该如何解决这个困境?

bash string
  • 1 个回答
  • 113 Views
Martin Hope
SamSep1ol
Asked: 2022-02-12 15:07:25 +0800 CST

如何使用sed删除这个字符串</p>\n</body>\n</html>"

  • -3

如何使用 sed 删除此字符串?

</p>\n</body>\n</html>"
sed string
  • 1 个回答
  • 26 Views
Martin Hope
pyoupyou
Asked: 2021-12-21 03:29:46 +0800 CST

将字符串附加到文件倒数第二行的末尾

  • 1

我想在最后一行之前的一行中附加/连接文本。所以如果我的原始文件是:

1 sometext
2 sometext
3 sometext
4 sometext
5 sometext

我的新文件是

1 sometext
2 sometext
3 sometext
4 sometext newtext
5 sometext

我已经知道如何插入换行符的解决方案,但这是一个稍微不同的问题,因为我不想插入新行,而是想要连接文本。

text-processing string
  • 6 个回答
  • 251 Views
Martin Hope
Moarram
Asked: 2021-10-29 18:20:50 +0800 CST

在 zsh 提示符下重复 char n 次

  • 4

我正在处理自定义 ZSH 提示,我想n在字符串中重复一个字符时间(例如用于填充的空格)。此字符串打印print -rP(-r标志忽略回显转义约定,-P标志执行提示扩展)。

我有使用某种字符串替换的工作代码,但我不知道它是如何工作的。出于某种原因,我必须将要打印的字符数乘以 2,这感觉就像是 hack。

$ n=3
$ c='a'
$ print -rP "${(l:$n::$c:)}" # why doesn't this work?
ca
$ print -rP "${(l:(( $n * 2 ))::$c:)}" # but this does?
aaa

那么,1)为什么乘以 2 会起作用,以及 2)在字符串中重复 char 的正确语法是什么?

zsh string
  • 2 个回答
  • 413 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve