awk 相关问题

AWK是一种解释性编程语言,专为文本处理而设计,通常用作数据提取和报告工具。 AWK主要用于Unix系统。

Grep 文件中的特定模式

我有一个像这样的 JSON,并且想要根据行中的字符串提取它们的子集。 { “输出名称”:{ “内部名称”:{ “k1”:[ ...

回答 1 投票 0

如何使用 awk 保留第一个字段的初始空格

我有一个该类型的文件: 啊啊啊啊 bbbb cccccc dddddddddddddd ee fff gggggggg hh iiiiii 我只想输出第一个和第三个字段,但保留第一个字段的原始空间,l...

回答 2 投票 0

处理文本文件以根据另一列的最大值修改列值

我有一个要修改的文件。有 100 个文件存在相同问题。输入文件如下 样品1 100A 总计1 1000 样品2 100A 总计1 5584 样品3 100A ...

回答 1 投票 0

sed 向自身追加一行或 awk $0 等价物?

我有这个文本文件,其中包含一个列表,例如 姓名 姓 办公室 地址 家庭电话 办公室电话 我的其他值 我想把它变成 '姓名': '姓名'; '姓氏':'姓氏'; '办公室':'办公室...

回答 1 投票 0

GnuWin32 sed 用于将 CRLF 替换为“;”来自 WIndows 批处理文件

我的输入带有 CRLF 行结尾: 1019 1020 1028 1021 我想使用 Windows 10 批处理脚本(不是 Powershell)从 Gnuwin32 中使用 sed(或 awk)删除每行末尾的 CRLF。 我想要...

回答 3 投票 0

如何转换每行的初始时间戳

尝试按如下方式转换日志文件每一行的初始时间戳 $ 猫测试.log [2024 年 4 月 9 日星期二 03:32:21] {cmd1} [2024 年 4 月 9 日星期二 03:33:42] {cmd2} [2024 年 4 月 9 日星期二 03:35:51] {cmd3} $ 约$...

回答 2 投票 0

如何转换每行的初始时间戳

尝试按如下方式转换日志文件每一行的初始时间戳 $ 猫测试.log [2024 年 4 月 9 日星期二 03:32:21] {cmd1} [2024 年 4 月 9 日星期二 03:33:42] {cmd2} [2024 年 4 月 9 日星期二 03:35:51] {cmd3} $ 约$...

回答 1 投票 0

awk:从字符串中转义正则表达式运算符的函数

需要一个函数来转义 awk 脚本中包含正则表达式运算符的字符串。 我遇到了这个“丑陋”的解决方案: 函数 escape_string( str ) { gsub(/\/, "\\", str ); ...

回答 2 投票 0

如何用“;”替换文本文件的所有CRLF带有可以使用GNU工具的W10 cmd批处理文件?

我的输入带有 CRLF 行结尾: 1019 1020 1028 1021 我想使用 Windows 10 批处理脚本(不是 Powershell)从 Gnuwin32 中使用 sed(或 awk)删除每行末尾的 CRLF。 我想要...

回答 3 投票 0

如何将文本文件的所有 CRLF 替换为 ;带有可以使用 Sed、Awk (Gnuwin32) 的 W10 cmd 批处理文件

我想用Windows 10下的Gnuwin32中的sed(或我不太了解的awk)删除每行末尾的CRLF。 我有这个输入(Dos 格式,因此在行尾有 CRLF): 1019 我想在Windows 10下使用Gnuwin32中的sed(或我不太了解的awk)删除每行末尾的CRLF。 我有这个输入(Dos 格式,因此在行尾有 CRLF): 1019<CR><LF> 1020<CR><LF> 1028<CR><LF> 1021<CR><LF> 并且,使用可以使用“W10批处理”或“sed”或“awk”(但不能使用Powershell)的W10 cmd批处理脚本,我想在文本文件中获得以下结果: 1019;1020;1028;1021 结果必须如上:在 1 行上,以半列作为分隔符,并且末尾没有任何半列。 尽管我在这个网站上读过类似的帖子,但我不知道如何做到这一点,因为我总是得到结果 它不适用于批处理文件中的以下几行(似乎有一个带有 GNUwin32 Sed 的 pb 在每个处理行的末尾添加新内容): REM This to generate the input example : (echo 1019& echo 1020& echo 1028& echo 1021) > test_in.txt REM This is the first try for getting the desired 1-line output with semicolumn : (echo 1019& echo 1020& echo 1028& echo 1021) | .\GnuWin32\bin\sed -e "s/ *$//g" | .\GnuWin32\bin\sed -e "s/\r\n/;/" > test_out.txt REM This is the second try for getting the desired 1-line output with semicolumn : REM (echo 1019& echo 1020& echo 1028& echo 1021) | .\GnuWin32\bin\sed -e "s/ *$//g" | .\GnuWin32\bin\sed -b -e "s/\x0d\x0a/;/g" > test_out.txt REM This is the third try for getting the desired 1-line output with semicolumn : REM (echo 1019& echo 1020& echo 1028& echo 1021) | .\GnuWin32\bin\sed -e "s/ *$//g" | .\GnuWin32\bin\awk "{gsub(\"\\\\r\\\\n\",\";\")};1" > test_out.txt REM This is the fourth try for getting the desired 1-line output with semicolumn : REM (echo 1019& echo 1020& echo 1028& echo 1021) | .\GnuWin32\bin\sed -e "s/ *$//g" | .\GnuWin32\bin\awk -v FS="\r\n" -v OFS=";" -v RS="\\$\\$\\$\\$" -v ORS="\r\n" "{$1=$1}1" > test_out.txt 在 Unix 中使用 GNU awk 会是: awk ' BEGIN { RS="\r\n" } { printf "%s%s", (NR>1 ? ";" : ""), $0 } ' file 你如何在 Windows 中调用它,我不知道,但我希望你知道或者可以通过 google 搜索它,因为你正在使用该环境。

回答 1 投票 0

使用 awk 或 bash 减去两列的值

我有一些文本文件,如下所示。我想减去第 2 列和第 4 列的值,并且需要为输出创建一个新列。 二氧化碳1 二氧化碳2 二氧化碳3 二氧化碳4 r1 15.2 13.0 21.4 r2 23 ...

回答 4 投票 0

在 awk 中针对一条记录累积多个值

我的文件为 1|开发|史密斯|78|减 1|ana|jhon|23|加 1|安娜|彼得|22|加 2|dev|破折号|45|减号 2|开发||44|加 我希望输出为,针对第 1 列和第 2 列的 uniq 值打印

回答 2 投票 0

在列数未知的表格右侧添加一列

我有两个表(一个是1.csv,另一个是2.csv)。第一个由名称和分数组成,例如...... 姓名、分数 爱丽丝,6 鲍勃,1 乔,2 约翰,7 米歇尔,9 另一个有一个不恒定的表

回答 1 投票 0

如何在CSV中计算满足某些条件的人数

我有一张表,比如 1.csv,其中有姓名和第一天、第二天、第三天、第四天的存在/缺席,例如.. 姓名、第一、第二、第三、第四 爱丽丝,1,1,0,0 鲍勃,0,1,1,1 克拉拉,1,0,1,0 为了减少列数,我

回答 2 投票 0

通过管道curl连接到awk来下载并解压文件

我想下载 HTML 页面此部分的所有文件: 第 1 项 我想下载 HTML 页面此部分的所有文件: <td><a class="xm" name="item_1" type="dd" href="/data/24765/dd">Item 1</a></td> <td><a class="xm" name="item_2" type="dd" href="/data/12345/dd">Item 2</a></td> <td><a class="xm" name="item_3" type="dd" href="/data/75239/dd">Item 3</a></td> 第一个文件的下载链接是https://foo.bar/data/24765/dd,由于它是一个zip文件,我也想解压它。 我的脚本是这样的: #!/bin/bash curl -s "https://foo.bar/path/to/page" > data.html gawk 'match($0, /href="\/(data\/[0-9]{5}\/dd)"/, m){print m[1]}' data.html > data.txt for f in $(cat data.txt); do curl -s "https://foo.bar/$f" > data.zip unzip data.zip done 有没有更优雅的方式来编写这个脚本? 我想避免保存 html、txt 和 zip 文件。 bsdtar命令可以从标准输入解压缩档案,允许您执行以下操作: curl -s "https://foo.bar/$f" | bsdtar -xf- 当然,您可以将第一个 curl 命令直接通过管道传输到 awk: curl -s "https://foo.bar/path/to/page" | gawk 'match($0, /href="\/(data\/[0-9]{5}\/dd)"/, m){print m[1]}' > data.txt 事实上,您也可以将该管道的输出直接传送到循环中: curl -s "https://foo.bar/path/to/page" | gawk 'match($0, /href="\/(data\/[0-9]{5}\/dd)"/, m){print m[1]}' | while read archive; do curl -s "https://foo.bar/$archive" | bsdtar -xf- done 我想避免保存(...)zip 文件。 通常许多 Linux 终端命令都会接受 -,意思是 在需要文件名的地方使用 stdin。经过粗略搜索后,某些版本的 unzip 似乎不支持此功能(请参阅 unix.stack.exchange 处的 如何将 wget 的输出重定向为解压的输入?),而其他版本则如 freebsd.org 所描述的那样 如果指定的文件名是“-”,则从标准输入读取数据。 所以如果您正在使用的版本就这样做 curl -s "https://foo.bar/$f" > data.zip unzip data.zip 可以改善 curl -s "https://foo.bar/$f" | unzip - 如果没有,但您想使用unzip,那么根据unix.stack.exchange的答案,使用unzip前缀busybux将修复 curl -s "https://foo.bar/$f" | busybux unzip -

回答 2 投票 0

如何在MS Excel中统计满足某个条件的人数

我有一张表,比如 1.csv,其中有姓名和第一天、第二天、第三天、第四天的存在/缺席,例如.. 姓名、第一、第二、第三、第四 爱丽丝,1,1,0,0 鲍勃,0,1,1,1 克拉拉,1,0,1,0 为了减少列数,我

回答 1 投票 0

CSV 文件中不需要的空白行

我这里有一个命令,我可以在 Stackoverflow 社区的帮助下将其组合在一起。现在我对脚本有一个小问题,这是一个很小的问题,但它困扰着我。 下面是

回答 2 投票 0

AWK 打印每行上的所有正则表达式匹配

我有以下文本输入: lorem ipsum dolor 坐 amet, consectetur adipiscing elit , sed 执行 eiusmod 时间 事件发生 正如我所见...

awk
回答 9 投票 0

awk 处理巨大文本文件时无法捕获错误记录

下面是我的产品代码。这项工作面临着一个挑战,它会间歇性失败,同时每隔一天返回非零返回代码。此作业的输入是一个巨大的 .txt 文件。 #!/bin/ksh 。 /操作...

回答 1 投票 0

转义 bash 变量以在“awk -v var=...”赋值中使用它的可靠方法

我正在寻找一种稳健的方法来将 bash 变量传递给 awk(通过 -v),以便分配的 awk 变量将准确包含 bash 变量中的内容。 例子: #!/bin/bash bash_var='目录\...

回答 1 投票 0

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