Sed(Stream EDitor)是POSIX环境的命令行编辑器。 Sed根据编辑脚本处理一个或多个文件,并将结果写入标准输出。它创建于贝尔实验室,自70年代中期以来一直存在。
我尝试通过 bash 添加一些标头到偶尔为空的 CSV 文件(因此有时文件为空,有时会有数据)。到目前为止,我已经尝试过使用 sed 和 awk。 塞德: sed -i '1...
如果整行与模式匹配,我需要用 sed 替换它。 例如,如果该行是“一二六三四”,并且如果存在“六”,则整行应替换为“故障”。
如何使用 shell 脚本根据文件内的列名称重命名 CSV 文件
假设我在 /path/RAS 文件夹下有 CSV 文件列表,每个 CSV 文件将携带有关每个客户的信息。 我们以一个客户档案为例: 客户_姓名,
我正在使用 jq 来解析 JSON 文件,如下所示。但是,字符串值的结果包含预期的“双引号”,如下所示: $ 猫 json.txt | jq '.name' “谷歌” 我怎样才能点...
我在 bash 中有一个这样的文件名列表 UTSHoS10_Other_CAAGCC-TTAGGA_R_160418.R1.fq.gz UTSHoS10_Other_CAAGCC-TTAGGA_R_160418.R2.fq.gz UTSHoS11_Other_AGGCCT-TTAGGA_R_160418.R2.fq.gz
我有一个Visual Studio项目,是本地开发的。代码文件必须部署到远程服务器。唯一的问题是它们包含的 URL,这些 URL 是硬编码的。 该项目包含...
如何将多行代码块替换为由指定字符分隔的另一个多行代码块[重复]
这是 bash 文件的通用标头。 #!/bin/bash # ###################################### ## # {配置_} # # ...
Sed - Awk:如何将多行代码块替换为由指定字符分隔的另一个代码块
这是 bash 文件的通用标头。 #!/bin/bash # ###################################### ## # {配置_} # # ...
如何使用shell命令将文本文件每一行中的“/”替换为空格? [已关闭]
我有一个文本文件(input.txt),其中的行包含“/”字符。我想将此文件的每一行中的每个“/”替换为空格。以下是内容示例: 7 47562385 47562385
假设我需要在包含客户详细信息的现有 CSV 文件的第一个单元格(不是逐行)中附加以下内容,我该如何实现, 待补充内容: &quo...
我有 70mb .tsv 文件,我想从每行删除“/”并使用 sed 或 tr 或任何基于 Linux 的命令添加空格而不是“/”[已关闭]
我想从每行中删除“/”并添加空格而不是“/” 输入示例: 7 47562385 47562385 ctttttttttttttttt/cttttttttttttttt 11 48932150 48932150 C/A 6 87733066 87733066
我想从每行中删除“/”并添加空格而不是“/” 输入示例: 7 47562385 47562385 ctttttttttttttttt/cttttttttttttttt 11 48932150 48932150 C/A 6 87733066 87733066
假设我需要在包含客户详细信息的现有 csv 文件的第一个单元格(不是逐行)中附加以下内容,我该如何实现它, 内容待补充...
我的目标是自动更新authorized_keys 文件中的ssh 密钥。由于限制,我无法使用 ansible,这会简单得多。 脚步: 从文件中读取密钥
我有一个大文件和我的特定字符串的列表。输出不应包含我的特定行以及每一行之后的一行。例如, 具体线路: '格格' 'SS' 输入: '格格' ‘123’ ...
我有一个 JSON 文件,数据中的文件路径不一致。 有些使用双反斜杠,有些则使用正斜杠。 我正在尝试标准化数据中的文件路径。 该命令适用于
我正在尝试采用 PCRE 正则表达式并在 SED 中使用它,但我遇到了一些问题。请注意,这个问题代表了一个更大的问题(如何将 PCRE 正则表达式转换为与 SED 一起使用)...
我的日志文件包含单个日志输出的多行,如下所示: 调试: 追踪: 调试: 我的日志文件包含多行单个日志输出,如下所示: DEBUG : <line1> <line2> TRACE : <line11> <line12> <line13> DEBUG : <line21> <line22> <line23> TRACE : <line31> <line32> ERROR : <line41> <line42> TRACE : <line51> <line52> DEBUG : <line61> <line62> 我必须从 TRACE 输出中清除它。 我用 sed -e "/^TRACE/,/^DEBUG\|^ERROR/d" <log.txt ...然后得到 DEBUG : <line1> <line2> <line22> <line23> <line42> <line62> Sed 删除包含范围,并且不在 TRACE 块之后打印 DEBUG 和 ERROR 行。 我用 sed 尝试了其他方法,但没有找到如何仅删除 TRACE 块。 Sed 非常好,但也许我应该使用另一个 Unix 实用程序...请建议。 这里有一种方法可以在 sed 中完成您想要的操作,尽管这是我通常使用 perl 的情况。这使用 sed 的“保留空间”来收集日志文件的每个部分,并在看到下一部分的开始时打印(或不打印)整个部分。 sed -n -e '/^\(TRACE\|DEBUG\|ERROR\)/ ! { H ; $!b } ; x ; /^\(DEBUG\|ERROR\)/ p' 但是,回答问题的主题,我认为不可能从范围中排除最后一行。 awk '/^TRACE/ { while ( $0 !~ /^DEBUG/ || $0 !~ /^ERROR/ ) { getline ; if ( $0 ~ /^DEBUG/ || $0 ~ /^ERROR/ ) { print $0 ; next } } } { print $0 }' FILENAME AWK 来救援;-)(注意:它可以粘贴到一行。) 这提供了一种将输入拆分到不同位置的合理技术。 使用案例会很好,但如果您坚持将字符串锚定在行的开头,我认为这是不可能的。 #!/bin/sh 执行3>&1 执行4> /dev/null 执行5>&1 同时读取 -r 行;做 回显 $line | grep ^DEBUG >&3 && 执行 >&3 && 继续 回显 $line | grep ^TRACE >&4 && 执行 >&4 && 继续 回显 $line | grep ^错误 >&5 && 执行 >&5 && 继续 回显$行 完毕 您可以复制标签,仅删除其中第一个: sed -E "s/^((DEBUG)|(ERROR)) : /\1 : \n\1 /" | \ sed "/^TRACE/,/^DEBUG\|^ERROR/d" | sed "s/^</\t</" DEBUG : DEBUG <line1> <line2> DEBUG <line21> <line22> <line23> ERROR <line41> <line42> DEBUG <line61> <line62> 最后一个 sed 命令只是为了更好的可读性,第一行留作练习。 :) 这是一个将 sed 的保留空间用作布尔值的解决方案:当且仅当保留空间为空时,才会输出当前行。 sed -e '/^TRACE/ h ; /^\(DEBUG\|ERROR\)/ { x ; s/.*// ; x } ; x ; /./ { x ; d } ; x' 其工作原理如下: 如果当前行与 ^TRACE 匹配,则将其放入保留空间,以便禁用输出(见下文)。 如果当前行与 ^\(DEBUG\|ERROR\) 匹配,则清除保留空间,以便启用输出(见下文)。 当且仅当保留空间包含某些内容时,x ; /./ { x ; d } ; x 才会删除当前模式空间。由于没有使用-n,如果模式空间没有被删除,就会输出。根据需要,保留空间被保留(对于块的其他行):正好执行 2 个 x (因为 d 开始一个新的循环)。 备注: 即使第一行与 ^\(TRACE\|DEBUG\|ERROR\) 不匹配,此解决方案也有效(仅删除 TRACE 块)。 图案空间或保持空间中不会累积线条。因此,该解决方案具有内存高效性,并且避免了 POSIX 允许的潜在限制:“模式和保存空间均应能够保存至少 8192 字节。” (具有大行的文本文件可能仍会受到限制的影响,但无论如何在这种情况下 sed 都无能为力。)
我的要求是将新标题添加到现有的 CSV 文件中,该文件的第一行已经有一些标题。我需要在现有标题的末尾添加新标题。的价值...
如何在现有的 csv 文件中添加新标题,该文件中已经有一些标题
我的要求是将新标题添加到现有的csv文件中,该文件的第一行已经有一些标题,我需要在现有标题的末尾添加新标题,th的值...