linux - 将包含单词的行从一个文件复制到linux中的另一个文件

标签 linux sed awk grep

我想将包含某些单词的行从 file1 复制到 file2

假设file1:

ram 100 ct 50
gopal 200 bc 40
ravi 50 ct 40
krishna 200 ct 100

file2 应该只有包含“ct”的行,看起来像这样:

ram 100 ct 50
ravi 50 ct 40
krishna 200 ct 100

实现此目标的最佳方法是什么?我有一个200mb的文件。 我使用了 grep 但运行 grep -n ct file1 没有得到任何结果。

最佳答案

这个 awk 应该做

awk '/ct/' file1 > file2

如果位置很重要

awk '$3=="ct"' file1 > file2
awk '$3~/ct/' file1 > file2

如果 ct 是字段 #3 中某些部分的一部分,则最后一个版本是可以的


grep 相同

grep ct file1 > file2

-n 不需要,因为它打印行号


sed 相同

sed -n '/ct/p' file1 > file2

关于linux - 将包含单词的行从一个文件复制到linux中的另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319345/

相关文章:

c++ - 从 C++ 中的不同项目中调用函数(在 Linux 中)

linux - 如何告诉 sed "do not remove some characters"?

bash - 从命令行按模式从绑定(bind)配置文件中删除区域 block

regex - 仅替换特定字符串中的字符

string - sed/awk - 从文件中删除除特定匹配模式之外的所有内容

linux - 如何在文件中搜索多行并在 bash/dash 中注释这些行

linux - 如何将文件移动到参数路径?

使用 QEMU 在树莓派上的 Debian 3.0 中的 php3

linux - 简单的退出脚本(if - then)

bash - sed 替换吃不匹配的模式