在 bash 脚本中,我有以下变量:
file_name='this_is_the_hart_part.csv'
Run Code Online (Sandbox Code Playgroud)
使用
var2=$(echo $file_name | sed -e 's/_{2}\(.*\)_{3}/\1/')
Run Code Online (Sandbox Code Playgroud)
我想提取子字符串“the”(变量 $file_name 中下划线数字 2 和 3 之间)。
但是我得到的 $var2 等于 $file_name。我该如何更改我的 sed 命令?
我正在 Manjaro Linux 上运行,并尝试使用虚拟机管理器“virt-manager”在 qemu 和 libvirt 下运行虚拟机 我正在运行 Intel 进行虚拟化,启用了 VT/x,当我签入时它会显示它命令行使用LC_ALL=C lscpu | grep Virtualization并输出:
Virtualization: VT/x
Run Code Online (Sandbox Code Playgroud)
我还用这个检查了内核:zgrep CONFIG_KVM /proc/config.gz
结果包括:CONFIG_KVM_INTEL=m
我还看到了将用户添加到 kvm 和 libvirt 组的解决方案,但这不起作用。我会更改CPU Default设置以复制主机 CPU 定义,但我什至无法创建虚拟机。
KVM 给出消息“错误,主机不支持任何虚拟化选项”
我怎样才能让虚拟机管理器让我添加虚拟机?
我需要找到文件中每个条目的最大值和最小值:
#subset of my file
NEUTRON 20.900103
PION- 0.215176
PION- 22.716532
NEUTRON 8.043279
PION+ 1.374297
PION- 0.313350
PION+ 0.167848
Run Code Online (Sandbox Code Playgroud)
当有多个条目名称时,如何循环遍历文件并找到每个名称的最小值和最大值。我已经使用 awk 来计算每个条目并且没有重复,但是每个名称的每个重复都包含一个数字,而该数字就是我试图过滤掉每个条目的最大值和最小值的数字。整个文件的 ex 输出:
Name Count Minimum Maximum
-------- ----- --------- ---------
KAON- 1 5.489958 5.489958
NEUTRON 2 8.043279 20.900103
PHOTON 10 0.034664 1.897264
PION- 5 0.192247 22.716532
PION+ 7 0.167848 7.631051
PROTON 1 1.160216 1.160216
Run Code Online (Sandbox Code Playgroud) Linux中用户和内核虚拟内存的大小是根据什么决定的?(32 位,如果相关的话。)它可以配置吗?
如果我们有 512 MB RAM,用户和内核虚拟地址的大小是多少?
我有一个如下的目录结构:
\nUltrastarDaily% tree -L 1\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lost+found\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 purple_rsync_bak.06-02-21_06-38-44am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 purple_rsync_bak.06-02-21_07-41-32pm\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 purple_rsync_bak.07-02-21_08-02-51am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 purple_rsync_bak.07-02-21_08-17-26am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 purple_rsync_bak.08-02-21_02-00-06am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.01-02-21_06-11-39pm\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-16-58am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-23-24am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-26-58am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-27-30am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-31-36am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-33-14am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-34-04am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-34-52am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-35-22am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_06-41-48am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.06-02-21_07-39-41pm\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.07-02-21_08-01-14am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.07-02-21_08-17-41am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.07-02-21_08-38-52am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.08-02-21_01-56-43am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.27-01-21_06-13-39pm\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.28-01-21_02-22-31pm\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 red_rsync_bak.30-01-21_12-48-03am\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rsync-WDPurple.log\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rsync-WDRed.log\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 WDPurple\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 WDRed\nRun Code Online (Sandbox Code Playgroud)\n我想.mp4从目录中递归删除所有文件...._rsync_bak....。
目前我正在使用命令:
\nfind ./ -regextype posix-egrep -regex ".*_rsync_bak.*.mp4" -delete\nRun Code Online (Sandbox Code Playgroud)\n但是,它并不能确保我只搜索根目录。它还可能mp4从名称类似...._rsync_bak....但位于WDPurple或WDRed目录内的目录中删除 s。
是否可以将日期格式从示例更改Fri 12 Feb 18:27:34 +08 2021为简单的DD-MM-YYYY?
具体来说,在last命令中更改日期格式
read -r -p "put an option: " option
echo $option
Run Code Online (Sandbox Code Playgroud)
这有效,但 shellcheck 给了我:
In POSIX sh, read -p is undefined.
Run Code Online (Sandbox Code Playgroud)
如何以符合 posix 的方式通过提示获取用户输入到变量中?
我对 Linux 相当陌生,目前我正在尝试运行以下命令,
\nfind ~ -name apt.no\nRun Code Online (Sandbox Code Playgroud)\napt.no我正在另一个列为 的目录中查找montrose-files。
shell 没有响应,它只是创建一个新行。谁能向我解释一下为什么这甚至没有产生结果?
\nbbcharlieca@myvm:~$ find ~ -name apt.no\nbbcharlieca@myvm:~$ \xe2\x96\x88\nRun Code Online (Sandbox Code Playgroud)\n
在 bash 手册https://www.gnu.org/software/bash/manual/html_node/Pipelines.html \nit 中指出:
\n\n\n\n
|&如果使用\xe2\x80\x98 \xe2\x80\x99,command1则 \xe2\x80\x99s 标准错误除了其标准输出之外,还command2通过管道连接到 \xe2\x80\x99s 标准输入;它是 的简写2>&1 |。
我向社区提出的问题是,它的实际意义是什么。我做了一个测试来证明为什么我认为它没有任何作用。
\n在这里,我创建了一个有效的循环,然后在最后一行创建了一个错误:
\nitems="frog cat"\nfor item in $items\ndo \necho $item\ndone\n\nfor item i will make error this line\nRun Code Online (Sandbox Code Playgroud)\n因此,手册暗示的是,除非我使用 |&,否则 stderr 将不会在 stdout 中输出,因为它通过管道传输到下一个命令。所以我测试了一下:
\n## this shows a regular pipe without &. As you can see stderr gets written anyway\n$ ./testing.sh | grep error\n./testing.sh: line 7: syntax error near unexpected token `i\'\n./testing.sh: line …Run Code Online (Sandbox Code Playgroud) awk ×2
bash ×2
sed ×2
shell ×2
shell-script ×2
find ×1
linux ×1
manjaro ×1
numeric-data ×1
posix ×1
read ×1
rhel ×1
shellcheck ×1
vim ×1