Questions tagged «awk»

一种模式导向的扫描和处理语言。

4
使用grep提取()之前的字符
我需要提取字符'('之前的字符。我的文件结构是: 玫瑰(好)钩 雏菊()否 礼来的(坏的)罚款 美丽的向日葵 我需要以下形式的输出文件: rose daisy lilly sunflower 谁能告诉命令这个..... 最好使用awk,grep或sed ...
12 sed  awk  grep 

1
如何将多行awk脚本集成到shell脚本中
我的问题是 如何解析文件以提取保存在“组号”中的3位数字 我正在尝试将一系列命令整合到一个shell脚本中 解析欧洲标准以提取测试序列 将文本编码转换为utf8 使用上面文章中提供给我的awk例程处理结果。 将内容保存在目标文件中 我已经试写了以下脚本。我能做到只step 1和step 4,但既不step 2也没有step 3。我想知道是否应该创建中间(临时)文件。我试图将中间步骤的输出存储到变量中,但是没有成功。对于可能出现的错误以及执行此操作的最佳方法,任何帮助都将是帮助。 #!/bin/bash # creating the Latex code for a test procedure awkcommand= "/usr/bin/awk ' $1 == "Group" {printf("\\section{%s %d}\n", $1, $2); next} { title = sep = "" for (i=1; i<=NF; i++) if ($i ~ /^[0-9][0-9][0-9]$/) { printf("\\subsection{%s} \n\\TestDetails{%d}\n", …
12 shell-script  awk 

4
通过awk或sed按第一列连接行
awk在以下情况下如何使用? 我想连接以同一列开头的行。只有在加入第一列保持(在这种情况下aaa,www,hhh)。 文件可以用空格或制表符分隔。 输入示例: aaa bbb ccc ddd NULL NULL NULL aaa NULL NULL NULL NULL NULL NULL aaa bbb ccc NULL NULL NULL NULL www yyy hhh NULL NULL NULL NULL hhh 111 333 yyy ooo hyy uuuioooy hhh 111 333 yyy ooo hyy NULL 所需的输出: aaa bbb ccc …

8
交换无数列
我有一个带有列的文件。参见以下示例: a b c ... z 1 2 3 ... 26 我想交换所有列,其中第一列变成最后一列,第二列变成最后一列...等等。 z y x ... a 26 25 24 ... 1 是否有一个衬板(awk或sed)做到这一点? 我知道awk只有几个列时可以使用,但是我希望能够对具有数千个列的文件执行此操作。 tac做到完美的线条。 我想我正在寻找对应的列。 rev 不适用于我,因为它还会交换列中的内容。

4
仅当下一行不包含特定匹配项时才打印一行
我正在尝试在日志文件中搜索未完成的已记录活动。例如,我记录“ ID 1234的启动活动...”,如果成功,则下一行将为“ Activity 1234 Completed”。 我正在尝试获取“开始...”行,其后没有相应的“已完成”行。 日志文件示例 Starting activity for ID 1234 ID 1234 completed successfully Starting activity for ID 3423 ID 3423 completed successfully Starting activity for ID 9876 ID 9876 completed successfully Starting activity for ID 99889 ID 99889 completed successfully Starting activity for ID 10011 ID …
12 grep  sed  awk 

3
按标题名称以awk打印列
我有一个像这样的文本文件 foo bar baz 1 a alpha 2 b beta 3 c gamma 我可以使用awk通过来打印某些列,例如1和3,{print $1, $3}但是我想通过指定列的标题来指定要打印的列,例如{print $foo, $baz}。这很有用,因此我不必打开文件并手动对列进行计数即可查看哪一列,并且如果列号或顺序发生更改,我也不必更新脚本。我可以使用awk(或其他shell工具)执行此操作吗?

3
如何仅显示列表的最后一行?
假设我列出了清单,并按其时间属性对文件进行了排序: ls -ltr -rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1 -rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2 . . . -rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000 我应该在管道链中的ls -ltr之后添加什么,以便仅获得清单的最后一行?我知道有sed和awk,但我不知道如何使用它们,我只知道它们可以做什么。
12 command-line  sed  awk  ls 

2
如何从日志文件中提取用户代理字符串?
目前,我正在运行这样的命令,以获取最需要的内容: grep "17\/Jul\/2011" other_vhosts_access.log | awk '{print $8}' | sort | uniq -c | sort -nr 我现在想查看用户代理字符串,但是问题是它们包含几个空格。这是典型的日志文件行。UA是最后一个由引号引起来的部分: example.com:80 [ip] - - [17/Jul/2011:23:59:59 +0100] "GET [url] HTTP/1.1" 200 6449 "[referer]" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30" 有没有比awk更好的工具呢?
12 logs  awk 

3
分发脚本:我应该将/ bin / gawk或/ usr / bin / gawk用于shebang吗?
gawk通常在/ bin或/ usr / bin中吗?我愿意,#!/usr/bin/env gawk但是我不能使用参数。现在我正在使用#!/bin/gawk -f。该脚本很长,包含很多单引号,并且可以与stdin一起使用。 GNU Awk手册的第1.1.4节“可执行awk程序”在其示例中使用#!/ bin / awk,但接着说: 请注意,在许多系统上都awk可以在中找到/usr/bin而不是/bin。买者自负。 大多数人做什么?我已经读过sed应该在/ bin中标准化,而perl应该在/ usr / bin中标准化(与sed链接相同的页面,但是他们不会让我为此帖子做第三个链接)。那awk / gawk呢?有谁知道哪个更普遍或更受欢迎?
12 awk  shebang  env 


2
命令删除输入中的前N行
背景 我正在运行SSH服务器,并且要删除此用户。我无法删除此用户,因为他当前正在运行一些我首先需要杀死的进程。 这是我当前正在使用的管道,以找出我当前正在使用的用户的所有进程ID: ps -u user | awk '{print $1;}' 输出看起来像这样: PID 2121 2122 2124 2125 2369 2370 我想用它kill -9杀死所有进程,所以我可以这样删除这个愚蠢的用户: ps -u user | awk '{print $1;}' | sudo xargs kill -9 但这由于PID标题而无法正常工作: kill: failed to parse argument: 'PID' 问题 我认为必须有一个简单的Unix命令才能删除输入的第一行。 我知道我可以使用tail它,但是我不想计算输入中包含多少行来准确地确定要显示的行数。 我正在寻找类似head或tail反转的内容(而不是仅显示流的第一部分/最后一部分,而是显示流的开始/结束以外的所有内容)。 注意 我设法通过简单地| grep [[:digit:]]在awk命令后添加来解决此问题,但是我仍在寻找删除文件第一行的方法,因为我认为在其他情况下这将非常有用。
11 command-line  sed  awk  tail  head 

4
如何使用grep命令将字符串搜索放入if语句?
我想在两个文件中搜索多个字符串。如果在两个文件中都找到一个字符串,则进行处理。如果仅在一个文件中找到一个字符串,则进行另一件事。 接下来是我的命令: ####This is for the affirmative sentence in both files if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then ####This is for the affirmative sentence in only one file, and negative for the other one if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then 否定和确认声明的正确方法吗?pd我正在使用KSH …

7
如何修复在错误的地方折断的线?
我的文本文件如下所示: This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. 我想删除任何行的尾随换行符,其后是以小写字母开头的行。 所以这应该是: This is one sentence that is broken. However this is a good one. And this one is somehow, broken into many. 我怎样才能做到这一点? 编辑:这里有一些非常好的答案,但是我选择接受第一个可行且最早的答案。非常感谢大家!


2
awk内存泄漏?
基于此,我正在运行命令 < /dev/urandom hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | sox -traw -r44100 -b16 -e unsigned-integer - -tcoreaudio 我注意到在运行此命令时,awk使用的内存不断增长,例如,在播放75MB原始音频数据时,消耗了500MB以上的内存。流水线中的所有其他命令都维护恒定数量的内存。 使用此内存的awk有什么用,是否有替代方法可以仅使用恒定数量的内存来进行预期的流处理? 如果awk版本很重要: ⑆ awk --version awk version 20070501 这是我根据Thomas Dickey的答案测试的命令: …
11 awk  osx  memory 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.