Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 需要打印输出文件中文件的第二列_String_Unix_Awk - Fatal编程技术网

String 需要打印输出文件中文件的第二列

String 需要打印输出文件中文件的第二列,string,unix,awk,String,Unix,Awk,已使用samtools查看我们的文件。我只需要抓取第二栏,所以我抓到了 ./samtools view mybamfile.bam | awk '{ print $2 }' > output.txt 你会猜到那没用。。如果awk不是一个好的选择,我愿意尝试其他任何东西 我相信/samtools view view mybamfile.bam的输出是以制表符分隔的,因此AWK的字段分隔符应该设置为tab(-F'\t'),以便获得第二列 请尝试以下命令: ./samtools view m

已使用samtools查看我们的文件。我只需要抓取第二栏,所以我抓到了

./samtools view mybamfile.bam | awk '{ print $2 }' > output.txt

你会猜到那没用。。如果awk不是一个好的选择,我愿意尝试其他任何东西

我相信
/samtools view view mybamfile.bam
的输出是以制表符分隔的,因此AWK的字段分隔符应该设置为tab(
-F'\t'
),以便获得第二列

请尝试以下命令:

 ./samtools view mybamfile.bam | awk -F'\t' '{ print $2 }' > output.txt
将选项卡重新设置为分隔符:

如果未指定字段分隔符,AWK将在“白空间”(例如空格和制表符)上拆分,使用
-F'\t'
确保只在制表符上拆分,而不是在空格上拆分。这使得包含空格和制表符的文件有所不同。例如

irene adler john moriarty
frank pempleton tim bayliss
假设每行的两个名称之间有一个选项卡。如果制表符未指定为字段分隔符,AWK每行将看到4个字段,第2列将包含
adler
pempleton
。如果将tab指定为字段分隔符,AWK将只在每行上看到2字段,第2列将由
john moriatry
tim baylis
组成


在Linux下使用GNU Awk 3.1.6进行测试。

默认情况下,Awk将字段分隔符作为制表符。因此,如果字段分隔符确实是制表符,则您的命令应该有效。 您可以尝试以下方法:

./samtools view mybamfile.bam |cut -f2 -d'\t'

您能给出samtools的输出示例吗?如果您向我们展示了您的文件,这会有所帮助。Awk使用字段分隔符(默认为空格或制表符)分隔文件。这应该可以工作,但您可能需要指定分隔符是什么。除非您显示一些数据,否则我们只能猜测。@JaypalSingh true,但如果您只想在制表符上分隔,则需要指定它。如果您不指定任何内容,AWK将在空格和制表符上拆分,请使用
-F'\t'
确保它只在制表符上拆分,而不是在空格上拆分。