Tag: awk

如何一行一行地合并两个文件

我有两个文件( file1.txt和file2.txt ),文件只是例子。 如何合并这两个文件,以创build文件 – merge_files.txt作为例子3 我现在写ksh脚本,所以合并可以用ksh,awk,sed,perl,one liner等来完成 背景 – 为什么我需要合并文件:我的目标是将旧文件 (存在于第一个字段中)重命名为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 . . . . 例题 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 . . . . . […]

打印文件中一行的最后一列

我有一个不断被写入/更新的文件。 我想find包含特定单词的最后一行,然后打印该行的最后一列。 该文件看起来像这样。 随着时间的推移,更多的A1 / B1 / C1线将被追加。 A1 123 456 B1 234 567 C1 345 678 A1 098 766 B1 987 6545 C1 876 5434 我试图使用 tail -f file | grep A1 | awk '{print $NF}' 打印值766,但没有输出。 有没有办法做到这一点?

Grep列表文件名和行号

您好我正在尝试使用grepsearch我的rails目录。 我正在寻找一个特定的单词,我想grep打印出文件名和行号。 有一个grep的标志,将为我做这个? 我一直在尝试使用-n和-l的组合,但是这些都是打印没有数字的文件名,或者只是倾倒出大量的文本到terminal,这是不容易阅读。 例如: grep -ln "search" * 我是否需要将它连接到awk?

如何使用shell(awk,sed,whatever)删除文件中的前两列

我有一个在每一行有很多行的文件有很多列(字段)以空格分隔“”每行的列数是不同的我想删除前两列如何?

find两个文本文件每行一个项目之间的区别

我有两个文件: 文件1 dsf sdfsd dsfsdf 文件2 ljljlj lkklk dsf sdfsd dsfsdf 我想显示文件2中的内容,但不是文件1中的内容,所以文件3应该看起来像 ljljlj lkklk

如何使用awk打印特定数字后的所有列?

在shell中,当我需要一个特定的列时,我会将其拖到awk上。 这打印列9,例如: … | awk '{print $9}' 我怎么能告诉awk打印所有的列, 包括第9列之后 ,而不是第9列?

如何使用awk从文件中获得匹配正则expression式模式?

使用awk ,我需要在与正则expression式匹配的文件中find一个单词。 我只想打印与模式匹配的单词。 所以,如果在行中,我有: xxx yyy zzz 和模式: /yyy/ 我只想得到: yyy 编辑:感谢kurumi我设法写这样的事情: awk '{ for(i=1; i<=NF; i++) { tmp=match($i, /[0-9]..?.?[^A-Za-z0-9]/) if(tmp) { print $i } } }' $1 这就是我需要:)非常感谢!

在awk中制表符分隔的值

如何从TAB分隔的string中select第一列? # echo "LOAD_SETTLED LOAD_INIT 2011-01-13 03:50:01" | awk -F'\t' '{print $1}' 以上将返回整个行,而不是像预期的那样“LOAD_SETTLED”。 更新: 我需要更改选项卡分隔值中的第三列。 以下不起作用。 echo $line | awk 'BEGIN { -v var="$mycol_new" FS = "[ \t]+" } ; { print $1 $2 var $4 $5 $6 $7 $8 $9 }' >> /pdump/temp.txt 但是,如果分隔符是逗号而不是制表符,则按预期工作。 echo $line | awk -v var="$mycol_new" -F'\t' '{print $1 "," […]

awk打印列$ 3如果$ 2 ==一个特定的值?

我从awk编程语言学习awk,并被这个例子困扰。 如果我想打印$ 3,如果$ 2等于一个值(eg'1'),我正在使用这个工作正常的命令: awk '$2==1 {print $3}' <infile> | more 但是当我用另一个search条件replace1时,例如'findtext',这个命令不起作用。 awk '$1== findtext {print $3}' <infile> | more 这不返回任何输出,我敢肯定,我在“findtext”中存在的地方。 我的语法有什么问题吗? 我试过,但它不工作: awk '$1== "findtext" {print $3}' <infile> | more 但是当我这样做 grep findtext <infile> ## This does give me output findtext存在于$ 1中,因为我仔细检查。 这里是我的testing文件名为“testing”,例如,它有9行和8个字段和空格分隔: 1 11 0.959660297 0 0.021231423 -0.0073 -0.0031 MhZisp 2 14 0.180467091 […]

grep多个string在文件中不同的行(即整个文件,而不是基于行的search)?

我想grep文件中包含单词Dansk , Svenska或Norsk在任何一行,有一个可用的返回码(因为我真的只想有信息的string被包含,我的单线进一步,然后这一点)。 我有很多像这样的行中的文件: 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 id: 0x22, Subtitle: 04, […]