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
    • 最新
    • 标签
主页 / user-553032

Sophie Weigle's questions

Martin Hope
wobtax
Asked: 2025-03-11 05:48:02 +0800 CST

为什么仅当我在主目录中时,bash 才会将 `[--x]` 扩展为 `f`?[重复]

  • 5
这个问题已经有答案了:
echo [9876543210] 显示 1 4 5 6 ...为什么? (1 个回答)
上个月关闭。

我观察到 Bash 中有一个行为只发生在我的主文件夹中。我无法在其他任何机器或其他文件夹中重现该行为。

$ echo --one [--two] --three
--one f --three

$ # Huh?

$ echo [--two]           # Why is echo changing my string?
f 

$ echo --two             # Does it happen without the brackets?
--two

$ echo [--x] --x         # Does it happen with a different string?
f  --x

$ echo [--arg] --arg     # So anything within [-- ... ] changes to f?
[--arg] --arg       

$ # WHAT?

$ echo [-x] [--x] [---x] # Does the number of hyphens matter?
[-x] f [---x]

$ cd ./folder; echo [--x]
[--x]

$ # ?????

所以这只发生在我的主文件夹中。为什么?

f我在 Bash 手册中找不到任何关于将字符串扩展为的内容。为什么有些字符串可以扩展为f,而有些却不行?可能是我的 IFS 的问题吗?我尝试完全清空我的~/.bashrc,但问题仍然存在。然而,当我在alpineDocker 容器中尝试这样做时,却无法进行f扩展。这是怎么回事?

(发布此帖子是因为我找到了解决方案,这相当令人尴尬。)

bash
  • 1 个回答
  • 51 Views
Martin Hope
wobtax
Asked: 2024-11-22 05:36:00 +0800 CST

仅在匹配的行上运行程序

  • 5

假设我有一个程序blackbox和一个包含以下内容的文件:

in this file
  this line contains =TAG=
    so does =TAG= this one
      as =TAG= does this other line
    this line does not
nor does this line
  =TAG= here again
    gone again

我如何blackbox仅在包含的行上运行=TAG=?

注 1:一种方法是使用while read循环,但这被认为是不好的做法。那么,什么是规范的、正确的方法来做到这一点(如果有的话)?

注 2:当然,如果我只是编辑文本,使用AWK或 的解决方案sed是合适的——但blackbox可能会产生预期的副作用。这个问题适用于我需要执行另一个进程的情况。

注 3:您可能会问,如果blackbox是类似nl或的情况,会发生什么情况sort— — 在多行上同时运行它与在每行上运行一个新进程的结果不同。在这种情况下,我希望能够通过以下三种方式中的每一种来做到这一点:

  • 按块:=TAG=用该块上的结果替换包含的每个连续行的块blackbox。

    预期输出为blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • 逐行:将包含的每一行替换为该行=TAG=的结果。blackbox

    预期输出为blackbox= nl:

    in this file
    1  this line contains =TAG=
    1    so does =TAG= this one
    1      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • 连续:将包含的所有行发送=TAG=给一个进程,并在接收下一个块blackbox之前用新打印的行替换每个块。blackbox

    预期输出为blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    4  =TAG= here again
        gone again
    

    (如果我们使用sort,所有匹配的行最终都会排在最后一个匹配的块中,因为它们直到最后才会被打印。)

我在这里没有发现任何关于一般问题的问题,但这些都是该问题的特殊情况:

  • 如何编写带有反斜杠的脚本前缀括号(逐行)
  • 根据字符串的存在编辑文件(逐行)
  • 有条件地将文件 1 中的行替换为文件 2 中的相应行(逐行)
  • 读取 bash 脚本时可以加快速度吗?(逐行)
  • 使用 sed逐行将字符串替换为文件内容
  • 使用 sed 在某些条件下用空格更改换行符(块方式)
  • 对仅匹配第一行的行块进行排序(按块)
  • 删除与模式匹配的行,以及其后与其他模式匹配的任何行(按块)
  • 按顺序(连续)用另一个文件中的行替换与模式匹配的行
  • 类似于“粘贴”,但在分隔符后垂直对齐?(连续)
  • 使用文本文件将多个命令行参数传递给可执行文件(连续)
  • 从与模式匹配的每一行中删除第 N 行(连续)
shell
  • 2 个回答
  • 68 Views
Martin Hope
wobtax
Asked: 2024-11-09 03:01:33 +0800 CST

Sway:waybar 无法启动,GTK 应用需要 20 多秒才能启动

  • 6

我一直在观察 Fedora 39 上的 Sway 的异常行为(它也安装了 GNOME,我需要保留 GNOME)。桌面启动了,但我启动的任何 GTK 应用程序都要等到大约 25 秒后才会打开。此外,我的导航栏永远不会出现,直到 25 秒后我重新加载配置。

我该如何避免这种延迟?

我见过并尝试过的答案:

  • 卸载xdg-desktop-portal并xdg-desktop-portal-gnome(事实证明这些是 GNOME 的依赖项,所以它不是一个选项)。
  • 放GTK_USE_PORTAL=0。
  • 放WAYLAND_DISPLAY=wayland-1。
  • exec systemctl --user import-environment在我的 sway 配置中运行(我尝试将它放在行之前和行之后waybar)。
  • 注释掉pam_gnome_keyring.so/etc/pam.d(在我的情况下为)下的文件中的行/etc/pam.d/gdm-autologin。
  • 通过名称(WAYLAND_DISPLAY、DISPLAY、等)导出一组特定的变量XDG_CURRENT_DESKTOP,以便 systemd 和 dbus 可以使用它们。

不幸的是,每次进行这些更改后,重新启动后延迟仍然存在。我发布这篇文章是因为我终于找到了解决方案,但欢迎解释(我真的不明白解决方案)。

fedora
  • 1 个回答
  • 36 Views
Martin Hope
wobtax
Asked: 2024-06-26 02:54:26 +0800 CST

使用‘top’持续监控一个进程和它的所有子进程?

  • 7

我想要运行一个产生子进程的过程,例如,

for i in {1..4}; do
  sh -c 'echo $$; for j in {1..3}; do
    sh -c "echo ...\$\$; sleep 1"
  done'
done

并且我想每 2 秒用 监控一次 CPU 和内存使用情况top。

  • 我可以用 监控它的资源使用情况top -p <PID>,但这并没有考虑到孩子的情况。
  • 我可以仅用 来监控所有top正在运行的进程,但是信息太多了。
  • 我可以预先计算 PID 列表,然后将它们全部传递给top,但该过程可能会产生新的子进程,这是无法解释的。

我如何才能top每 2 秒获取一次我正在运行的进程及其产生的任何进程的快照?

有人在这里问过类似的问题,但它是关于在流程结束后将这些信息汇总为一个数字。我的问题是关于在流程仍在进行时持续监控流程。

top
  • 5 个回答
  • 117 Views
Martin Hope
Sophie Weigle
Asked: 2022-12-14 19:42:47 +0800 CST

类似 `paste` 但在分隔符后垂直对齐的东西?

  • 9

我想将两个文件粘贴在一起,但在部分分隔符行之后垂直对齐::。这就是我的意思。

的内容file1:

Apple
Banana
Carrot
::
Durian

的内容file2:

Energy
Flight
::
Gravity
Heartbreak

期望的输出:

Apple Energy
Banana Flight
Carrot 
::
Durian Gravity
 Heartbreak

到目前为止,我知道几乎paste可以做我想做的事(没有很好的垂直对齐);另一种选择是拆分并分成多个文件,然后将结果连接在一起,但我想尽可能避免这种情况。我怎样才能做到这一点?file1file2

我并不严格需要使用paste. 任何有效的方法!

text-processing
  • 2 个回答
  • 105 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