Questions tagged «awk»

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

3
如何查看awk数组中的所有内容?
以我的理解,awk数组类似于python dict。 因此,我写下了下面的代码进行探索: awk '{my_dict[$1] = $2} END { print my_dict}' zen 我得到: awk: can't read value of my_dict; it's an array name. 由于第一列不是数字,我如何读取数组的总内容或遍历它?
41 awk 

2
从日期输出中删除前导零
我为date命令设置了别名,以以下格式显示日期: 2013.06.14.12.10.02 使用此命令: alias date = date +"%Y.%m.%d.%H.%M.%S" 一切都很好,除了我想从输出中删除前导零。 无法通过更改格式来实现。我认为只能通过将输出传递给其他命令(例如sed和)来完成awk。 我正在运行的操作系统是Ubuntu 12.04.2 LTS。
40 sed  awk  date 

6
如何以人类可读的格式列出目录中每个文件的行数。
我有一个包含大型csv文件的目录和子目录的列表。这些文件中大约有5亿行,每行都是一个记录。我想知道 每个文件中有几行。 目录中有几行。 总共多少行 最重要的是,例如,我需要使用“人类可读格式”。12,345,678而不是12345678 最好以3种方式来学习如何做到这一点。普通的香草bash工具,awk等,以及perl(或python)。
40 bash  awk  python  perl 

2
awk'!a [$ 0] ++'如何工作?
这种单行代码无需预先排序即可从文本输入中删除重复的行。 例如: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ 我在互联网上找到的原始代码为: awk '!_[$0]++' 这让我更加困惑,因为我_在awk中有特殊的含义,就像在Perl中一样,但事实证明,这只是数组的名称。 现在,我了解了单线背后的逻辑: 每条输入行都用作哈希数组中的键,因此,完成后,哈希按到达顺序包含唯一的行。 我想学习的是awk如何准确地解释此表示法。例如,爆炸符号(!)的含义以及此代码段的其他元素。 它是如何工作的?

3
使用awk跳过文本文件中的前6行/行
如何跳过文本文件(input.txt)中的前6行/行,并使用awk处理其余行?我的awk脚本(program.awk)的格式为: BEGIN { } { process here } END { } 我的文本文件是这样的: 0 3 5 0.1 4.3 2.0 1.5 1.5 3.0 0.3 3.3 1.5 2.1 . . . 我想从以下位置处理文件: 0.3 3.3 1.5 2.1 . . .
39 awk  gawk 

12
在数字中添加千位分隔符
在python中 re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke ) 用三元组拆分数字,例如: echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", sys.stdin.read());' 123,456,789 bash / awk怎么做?


9
如何打印文件中最长的行?
我正在寻找最简单的方法来打印文件中的最长行。我做了一些谷歌搜索,令人惊讶的是似乎找不到答案。我经常打印文件中最长行的长度,但是我不知道如何实际打印最长行。任何人都可以提供一种解决方案来打印文件中最长的行吗?提前致谢。
35 bash  awk  filter 

3
从grep到awk的管道不起作用
我正在尝试grep正在进行tail的文件日志,并n从一行中获取第一个单词。示例文件: $ cat > test.txt <<EOL Beam goes blah John goes hey Beam goes what? John goes forget it Beam goes okay Beam goes bye EOL ^C 现在,如果我做一个tail: $ tail -f test.txt Beam goes blah John goes hey Beam goes what? John goes forget it Beam goes okay Beam goes …
34 bash  grep  rhel  awk  tail 

3
如何基于两列的匹配合并两个文件?
我有喜欢的文件: 0 AFFX-SNP-000541 NA 0 AFFX-SNP-002255 NA 1 rs12103 0.6401 1 rs12103_1247494 0.696 1 rs12142199 0.7672 和一个file2: 0 AFFX-SNP-000541 1 0 AFFX-SNP-002255 1 1 rs12103 0.5596 1 rs12103_1247494 0.5581 1 rs12142199 0.4931 并且想要一个file3这样的: 0 AFFX-SNP-000541 NA 1 0 AFFX-SNP-002255 NA 1 1 rs12103 0.6401 0.5596 1 rs12103_1247494 0.696 0.5581 1 …

4
删除文件的前n个字节
我遇到了一个极端的问题,我能想到的所有解决方案都很复杂。根据我的UNIX / Linux经验,必须有一种简单的方法。 我想删除中每个文件的前31个字节/foo/。每个文件足够长。好吧,我敢肯定有人会为我提供一个我无法想象的超简单解决方案。也许awk?

12
如何按名称打印某些列?
我有以下文件: id name age 1 ed 50 2 joe 70 我只想打印id和age列。现在我只用awk: cat file.tsv | awk '{ print $1, $3 }' 但是,这需要知道列号。有没有一种方法可以在其中使用列名(在第一行中指定)代替列号?
32 awk 

10
如何在模式(标记)之前将文件的内容插入另一个文件?
File1 内容: line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" File2 内容: line1-file2 "25" line2-file2 "24" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" 执行完perl / shell脚本后,File2内容应变为: line1-file2 "25" line2-file2 "24" line1-file1 "1" line2-file1 "2" line3-file1 "3" line4-file1 "4" Pointer-file2 "23" line4-file2 "22" line5-file2 "21" 即,将File1in 的内容粘贴在File2包含“ Pointer”的行之前。


5
如何用awk替换特定列的内容?
给定:一条记录​​中有40列。我想替换第35列,以便将第35列替换为第35列的内容和“ $”符号。我想到的是: awk '{print $1" "$2" "...$35"$ "$36...$40}' 它可以工作,但是因为当列数最大为10k时不可行。我需要一个更好的方法来做到这一点。

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.