Linux-将包含字符串的行放在新文件的特定列中

Linux-将包含字符串的行放在新文件的特定列中,linux,awk,Linux,Awk,我想从linux中的文本文件中提取所有行,这些行在特定列(第4列)中包含特定的数字(在本例中为9913)。这是一个以制表符分隔的文件,所以我称之为列,尽管我不确定它是否是 在某些情况下,第4列中只有一个数字,但在其他行中,此列中有多个数字(例如9913;4444;5555)。我想获取第4列中出现数字9913的任何行(无论它是否是唯一的数字或列表中的数字)。如何将包含数字9913的所有行放在第4列中,并将它们放在自己的文件中 以下是我尝试过的一个例子: cat file.txt | grep 99

我想从linux中的文本文件中提取所有行,这些行在特定列(第4列)中包含特定的数字(在本例中为9913)。这是一个以制表符分隔的文件,所以我称之为列,尽管我不确定它是否是

在某些情况下,第4列中只有一个数字,但在其他行中,此列中有多个数字(例如9913;4444;5555)。我想获取第4列中出现数字9913的任何行(无论它是否是唯一的数字或列表中的数字)。如何将包含数字9913的所有行放在第4列中,并将它们放在自己的文件中

以下是我尝试过的一个例子:

cat file.txt | grep 9913>newFile.txt

结果是以下各项的混合:

CDR1as CDR1as ENST0000003100.8 9913 AAA-GGCAAGGGGACUAAA(我想要的文件)

CDR1as CDR1as ENST0000399139.1 9606 GUCCCA………..(文件示例:我不想要)

我在调用特定列时没有得到任何结果。如下面的帮助程序所示,代码无法识别我认为的列,并且在使用awk时会得到空白文件

awk'$4==“9913”'file.txt>newfile.txt

不会将数据传输到新文件


谢谢这是一种方法

awk '$4 == "9913" {print $0}' file.txt > newfile.txt
或者只是

awk '$4 == "9913"' file.txt > newfile.txt

显示到目前为止您已经尝试过的内容。重复输入-您希望第二个案例(例如9913;4444;5555)也被选中吗?还有,您的字段分隔符是什么?是的,我刚刚编辑了上面的对话,以便更清楚一点。我希望这两种情况都包含在选择中。请注意,
{print$0}
在这里是多余的,因为这是
awk
的默认行为。所以
awk'$4==“9913”文件就足够了。谢谢。我刚刚编辑了上面的内容。出于某种原因,这对我的数据不起作用,尽管我在其他帖子中也看到过。当我使用awk时,我不会将任何行传输到新文件