uniq 1.txt >2.txt如果是想将相邻重复行彻底删掉(而不是合并成一行),可以用
uniq -u 1.txt >2.txt
可以使用vim打开文件,然后通过 vim编辑 中的 /(向后查找)或者 ?(向前查找)来查找相应的字符串。示例:用vim打开/etc/passwd查找admin用户名
vim /etc/passwd
打开文件后,直接输入 /admin 回车即可查找如下图所示:
回车执行,vim查找到后,会标识出来,如下图所示:
另外:使用vim也可以打开可执行程序来查找字符串(在程序没有加壳或者使用其它字符串保护的前提下)。
示例:在test程序中查找hello字符串。
虽然使用vim打开二进制程序文件,显然的是乱码,但是明文字符串依然能查找到,如下图所示:
扩展:在Linux中如果要查找二进程文件即应用程序中的字符串,可以使用反汇编器、调试器等等,比如IDA,就提供强大的字符串查找功能。
getline函数调用时,awk将会把下一条记录读入赋值给$0,因此相当于已经跳到下一行了。你的程序上面那个,由于在awk中有多次getline,因此一开始把记录定位到第二行,即第一个文件,然后每调用一次"md5sum "name1 | getline记录就跳到了下一行,输出是不会重复的。
而下面的那个程序,没有多次getline调用,awk按行扫描,每次会把当前行的文件名赋值给name2,同时name1又记录了上一次的文件名,因此出现了test01两次,test02两次
事实上,输出和扫描行的对应关系是:
先在BEGIN段跳过两行,当前行为test,name赋值得到test
然后逐行扫描,当前扫描行是test01时, 输出了test test01
当前扫描行是test02时, 输出了 test01 test02
当前扫描行是test02时, 输出了 test02 test03
所以一共出现6行,中间有重复
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)