bash 相关问题

有关为Bash命令shell编写的脚本的问题。对于有错误的shell脚本,请在发布此处之前使用shellcheck程序(或在https://shellcheck.net上的Web shellcheck服务器中)进行检查。关于交互式使用Bash的问题更可能是超级用户的主题,而不是Stack Overflow。

Appwrite 函数构建无法安装依赖项,即使我专门定义了它们

我一直在尝试上传一个函数,允许我将 CSV 转换为 JSON 文件。该代码可以工作,但是当我尝试将其部署到我的 Appwrite 实例时,构建失败。 这是我的功能: 夫...

回答 1 投票 0

bash命令行算术echo $((x-y))如何将结果除以z?

我正在尝试找出一种方法来获取基本方程的结果并除以另一个整数。所以简单来说,它看起来像; A-B = C,然后将 C 除以 D 我明白第一部分...

回答 3 投票 0

监控系统日志中的多行以执行脚本

我试图通过在断开连接时禁用端口“关闭”5 分钟来“修复”unifi 交换机中缺失的功能。 我正在监视系统日志文件,该文件接收系统日志事件...

回答 1 投票 0

如何剪切前n列和后n列?

如何从制表符分隔文件中截断前 n 列和后 n 列? 我尝试用这个来剪切前 n 列。但我不知道如何合并第一个和最后一个 n 列 切-f 1-10 -d“ 如何从制表符分隔文件中截断第一个 n 和最后一个 n 列? 我尝试用这个来剪切第一个n列。但我不知道如何合并第一个和最后一个 n 列 cut -f 1-10 -d "<CTR>v <TAB>" filename 剪切可以在-f中取多个范围: 第 4 列及第 7 列以下: cut -f -4,7- 或对于字段 1、2、5、6 以及从 10 开始: cut -f 1,2,5,6,10- 等等 你问题的第一部分很简单。正如已经指出的,cut 接受省略列范围的开始或结束索引,将其解释为“从开始到列 n(包括)”或“从列 n(包括)到结束,”分别: $ printf 'this:is:a:test' | cut -d: -f-2 this:is $ printf 'this:is:a:test' | cut -d: -f3- a:test 它还支持组合范围。例如,如果您想要 7 列的行中的前 3 列和最后 2 列: $ printf 'foo:bar:baz:qux:quz:quux:quuz' | cut -d: -f-3,6- foo:bar:baz:quux:quuz 但是,您问题的第二部分可能会有点棘手,具体取决于您期望的输入类型。如果“最后 n 列”的意思是“最后 n 列(无论它们在整行中的索引如何)”(即因为您不一定知道要提前找到多少列),那么遗憾的是,单独使用 cut 是不可能完成的。为了有效地使用cut拉出每行中的“最后n列”,必须事先知道每行中存在的列的总数,和每行必须一致它包含的列数。 如果您不知道每行中可能存在多少个“列”(例如,因为您正在使用并非严格表格的输入),那么您将不得不使用类似awk之类的东西。例如,使用 awk 从每行输入中提取最后 2 个“列”(awk 将它们称为 字段, 其数量每行可能不同): $ printf '/a\n/a/b\n/a/b/c\n/a/b/c/d\n' | awk -F/ '{print $(NF-1) FS $(NF)}' /a a/b b/c c/d 您可以使用以下方式进行剪切, -d:分隔符,-f 表示字段 用于制表符分隔的字段 cut -d$'\t' -f 1-3,7- 使用 AWK 截断第一个和最后一个字段: awk '{$1 = ""; $NF = ""; print}' inputfile 不幸的是,这留下了字段分隔符,所以 aaa bbb ccc 成为 [space]bbb[space] 要使用 kurumi 的答案来做到这一点,它不会留下额外的空格,而是以特定于您的要求的方式: awk '{delim = ""; for (i=2;i<=NF-1;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile 这也解决了该答案中的几个问题。 概括地说: awk -v skipstart=1 -v skipend=1 '{delim = ""; for (i=skipstart+1;i<=NF-skipend;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile 然后,您可以通过更改命令开头的变量分配来更改要在开头或结尾跳过的字段数。 您可以使用 Bash 来实现: while read -a cols; do echo ${cols[@]:0:1} ${cols[@]:1,-1}; done < file.txt 要回答问题的第二部分,如果您有非标准的“rev”(反向)命令可用,只需反转该线,然后从第 n 列剪切到末尾,然后反向返回。例如'... |转 |切-d。 -f 2- |转速 . 因此,要结合这是问题的第一部分,您需要在第一转之前删除前“n”列。 你可以使用awk,例如,截掉第1、2和最后3列 awk '{for(i=3;i<=NF-3;i++} print $i}' file 如果您有 Ruby (1.9+) 等编程语言 $ ruby -F"\t" -ane 'print $F[2..-3].join("\t")' file 尝试以下操作: echo a#b#c | awk -F"#" '{$1 = ""; $NF = ""; print}' OFS="" 使用 cut -b COLUMN_N_BEGINS-COLUMN_N_UNTIL INPUT.TXT > OUTPUT.TXT 如果文本文件中有“选项卡”,-f 不起作用。

回答 9 投票 0

多行编写 SSH 命令

我正在尝试远程登录到 shell 并在 shell 上执行一堆命令。 但为了使其更具可读性,我想将代码放在多行上。我应该怎么做? ssh -o ...

回答 4 投票 0

来自 bash 脚本中数组的 xdotool 命令

我有一个 bash 脚本,需要按顺序运行多个 xdotool 命令。我无法让带有字符串的类型命令正常运行。 如果我手动输入它们,效果很好: #!/bin/bash

回答 1 投票 0

如何统计整个文件中某个字符串出现的次数?

是否有内置命令可以执行此操作,或者有人有幸使用了执行此操作的脚本吗? 我正在计算某个字符串(而不是单词)在文件中出现的次数。这可以包括...

回答 6 投票 0

稀疏数组的第一个索引/值

我在 bash 中有一个稀疏数组,我不知道最低编号索引的值,我想用它的索引提取该值。我如何找到它? #/bin/bash a=( [12]="蓝色" [3...

回答 3 投票 0

从 bash 脚本中的字符串中检索的字符根据方法的不同而变化

我正在学习shell脚本,发现一个非常令人困惑的情况: 我使用 conteudo="$(ls)"; 检索当前目录的所有内容; 发出 echo $conteudo 打印到终端...

回答 1 投票 0

bash 中稀疏数组的第一个索引/值

我在 bash 中有一个稀疏数组,我不知道最低编号索引的值,我想用它的索引提取该值。我如何找到它? #/bin/bash a=( [12]="蓝色" [...

回答 1 投票 0

bash 中数组的第一个索引/值

我在 bash 中有一个稀疏数组,我不知道最低编号索引的值,我想用它的索引提取该值。我如何找到它? #/bin/bash a=( [12]="蓝色" [...

回答 1 投票 0

使用 sed 或 tr 与 bash 将制表符转换为单位分隔符

as title - 我想将输入文件/stdin 中的制表符转换为 stdout/重定向文件上的 ascii 单位分隔符。 以下所有内容均无效 TR 0x09 0x1f tr'0x09''0x1f' sed 的#0x09#0x1f...

回答 1 投票 0

lsusb 出了什么问题 | awk '{print $6}' | xargs --null lsusb -s

命令1: lsusb | awk '{打印 $6}' 输出1: 1d6b:0002 0627:0001 0627:0001 0627:0001 0409:55aa 46f4:0001 1d6b:0003 1d6b:0002 1d6b:0003 命令2: lsusb | awk '{print $6}' |参数 输出2: 1d6...

回答 1 投票 0

将当前目录下所有文件中的一个字符串替换为另一个字符串

如何将当前目录下出现的每个字符串替换为另一个字符串? 示例:我想将每个文件中出现的所有 www.fubar.com 替换为 www.fubar.ftw.com...

回答 6 投票 0

如何反转grep命令的输出?

我的 grep 命令有一个问题。在我调用的脚本中我使用: “服务密码”:foooooooooooo “服务用户名”:barrrrrrrrr grep -E '"ServiceUserName"|"ServicePassword"' >> user.txt ...

回答 4 投票 0

解析curl输出[重复]

我正在尝试解析curl请求并解析输出并将其存储在名为res.txt的文件中 这是我的 bash 命令行: 卷曲 --request POST --url 'https://www.virustotal.com/vtapi/v2/url/scan' ...

回答 2 投票 0

ShellSpec:“所有钩子之前和之后”中的错误终止测试执行,即使状态代码为 0

我有一个测试功能,可以在测试执行之前设置我的环境。 所有测试之前设置环境 设置环境(){ set -x # 启用详细输出 # 判断操作系统类型 ...

回答 1 投票 0

Bash 中的“hash”内置命令有“-l”选项吗?

我正在自学 shell,并且非常享受它。前几天我在课程中遇到了内置的哈希并对其进行了一些研究。这让我找到了 bash 手册,即关于

回答 1 投票 0

Shell,执行需要逐一遍历多个值的命令

我有一个脚本: 如果 [ $ModEnabled == "1" ];那么 ${HOME}/servers/steamcmd/steamcmd.sh +force_install_dir ${HOME}/servers/dayzserver/ +login "${SteamUser}" +workshop_download...

回答 3 投票 0

在 Linux 中使用不同的方法来递归目录

我想找出最有效的方法来递归计算子目录和文件,并提出了以下测试。有些看似有效,但结果却不一致。 我该如何修复

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.