Questions tagged «awk»

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

15
grep在文件中的不同行上有多个字符串(即整个文件,不是基于行的搜索)?
我希望到grep包含文件的话Dansk,Svenska或者 Norsk任何线,以可用的返回码(因为我真的只喜欢有这些字符串包含了信息,我的一行又进了一步,然后这一点)。 我有很多这样的文件,其中有行: Disc Title: unknown Title: 01, Length: 01:33:37.000 Chapters: 33, Cells: 31, Audio streams: 04, Subpictures: 20 Subtitle: 01, Language: ar - Arabic, Content: Undefined, Stream id: 0x20, Subtitle: 02, Language: bg - Bulgarian, Content: Undefined, Stream id: 0x21, Subtitle: 03, Language: cs - Czech, Content: Undefined, Stream …
85 bash  awk  grep 

5
awk部分匹配字符串(如果列/单词部分匹配)
我的虚拟文件如下所示: C1 C2 C3 1 a snow 2 b snowman snow c sowman 如果snow$ 3中有字符串,我想获取行。我可以这样做: awk '($3=="snow" || $3=="snowman") {print}' dummy_file 但是应该有更简单的方法。
83 awk 

5
什么是NR和FNR,“ NR == FNR”意味着什么?
我正在使用来学习文件比较awk。 我发现如下语法 awk 'NR==FNR{a[$1];next}$1 in a{print $1}' file1 file2 我不明白这有什么意义NR==FNR?如果我尝试,FNR==NR那么我也会得到相同的输出吗? 它到底是做什么的?
83 awk 



8
cut或awk命令以打印第一行的第一字段
我正在尝试打印输出第一行的第一字段。就是这种情况。我只需要SUSE从此输出中打印即可。 # cat /etc/*release SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 2 尝试过cat /etc/*release | awk {'print $1}'但会打印每行的第一个字符串 SUSE VERSION PATCHLEVEL
78 linux  bash  unix  awk 

2
如何在文件中使用grep区分大小写的字符串?
我有一个file1以Success...OR 结尾 的文件success... 我想以一种不区分大小写的方式来grep表示这个词success。 我已经写了以下命令,但是区分大小写 cat file1 | grep "success\.\.\." 我该如何,它改变它,以便returns 0与两个Success...或 success...
78 bash  shell  awk  sed  grep 


4
使用Awk命令行打印以逗号分隔的列
我在这里有问题。我必须使用awk在文本文件中打印一列。但是,这些列根本没有用空格分隔,仅使用了一个逗号。看起来像这样: column1,column2,column3,column4,column5,column6 我将如何使用awk打印第三列?
77 csv  awk 

9
使用Shell脚本在指定模式后将多行插入文件
我想使用Shell脚本在文件中插入多行。让我们考虑一下我的输入文件内容是: input.txt: abcd accd cdef line web 现在,我必须在input.txt文件中的'cdef'行之后插入四行。插入我的文件后,应更改为: abcd accd cdef line1 line2 line3 line4 line web 上面的插入我应该使用shell脚本来做。谁能帮我?
75 linux  bash  shell  sed  awk 


6
如何一致地逐行合并两个文件
我有两个文件(file1.txt和file2.txt),这些文件仅是示例。 如何合并两个文件,以创建文件-merge_files.txt作为示例3 我现在写的是ksh脚本,因此可以用ksh,awk,sed,perl一个内衬... etc进行合并 背景-为什么需要合并文件:我的目标是将OLD文件(存在于第一个字段中)重命名为NEW文件(存在于第二个字段中), 例子1 more file1.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port5-192.9.200.1-255.555.255.0 . . . . 例子2 more file2.txt /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . 例子3 more merge_files.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . . example4(merge_files.txt结构) first field …
71 linux  perl  sed  awk  ksh 

8
如何获取awk中数组的长度?
这个命令 echo "hello world" | awk '{split($0, array, " ")} END{print length(array) }' 对我不起作用,并显示此错误消息 awk:第1行:对数组array的非法引用 为什么?
68 awk 

2
如何在SVN信息库中以递归方式查看svn:ignore设置的所有忽略模式?
我看到可以使用proplist以及-R标志(递归)和-v标志(详细)来查看SVN存储库中每个目录上设置的属性的列表: svn proplist -Rv 这显示了所有属性,例如svn:mime-type或svn:executable。我希望将其过滤为仅svn:ignore属性。我确信有某种方法可以将这个命令的结果通过shell命令传递给我,这只会向我显示我感兴趣的行,但是我不知道该怎么做。例如,某种类型的命令是最有用的一种类型的命令(但此命令不起作用!)。 svn proplist -Rv | grep "^ svn:ignore" | awk "{print \$1}" 我只是对grep和awk之类的shell命令了解不足,无法对我有效。这只是一遍又一遍地显示“ svn:ignore”,但不会打印出目录路径或svn:ignore属性内容。这是我想获取的“ svn proplist -Rv”输出的示例,其中“ cache”是路径,“ *”是属性的值。 Properties on 'cache': svn:ignore * 如何使以上命令起作用和/或有更好的方法查看svn:ignore存储库中的所有属性?
67 svn  awk  grep 

3
使用NON GNU awk将修改保存到位
我遇到了一个问题(关于SO本身),OP必须在其中进行编辑并将操作保存到Input_file(s)本身中。 我知道对于一个Input_file我们可以执行以下操作: awk '{print "test here..new line for saving.."}' Input_file > temp && mv temp Input_file 现在让我们说我们需要以相同类型的文件格式进行更改(在此处假设.txt)。 我为这个问题尝试/想到的方法:它的方法是遍历.txt文件的for循环,并且调用singleawk是一个痛苦且不建议的过程,因为这将浪费不必要的cpu​​周期,并且对于更多数量的文件,它将更多慢。 因此,可以使用awk不支持inplace选项的NON GNU对多个文件执行就地编辑。我也经历了这个线程,用awk将修改保存到位,但对于NON GNU awk副工具和更改其内部的多个文件并没有多大作用awk,因为非GNU awk将没有inplace选择权。 注意:为什么要添加bash标签,因为在答案部分中,我已经使用bash命令将临时文件重命名为其实际的Input_file名称,因此添加了它。 编辑:根据Ed先生的评论,在此处添加了示例示例,尽管该线程代码的目的也可以由通用目的就地编辑使用。 样本输入文件: cat test1.txt onetwo three tets testtest cat test2.txt onetwo three tets testtest cat test3.txt onetwo three tets testtest 预期输出样本: cat test1.txt 1 2 cat …
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.