删除空格以在Ubuntu Xenial中只写一个长字符串

时间:2018-03-19 12:42:25

标签: linux shell whitespace tr blank-line

我在Ubuntu工作,我试图删除文件中的所有空格,只获得一个长字符串。 我的文件在一个文本中有\t\n,它应该是由字母组成的长字符串(它是基因组序列)。它看起来像:

AAAAAAAAAAAAAGTCGCTCGGAACCTGCTTCAAG
AGTCTAGCTCGATAAAGCTTAGATCTGATATAGATGAGATAGAGTGA
GGATCTTGATCTTTAGGAG

因此,我想要消除所有\n\t,并写一个唯一的字符串,其中所有部分一个接一个地写,没有空格,也没有删除任何字母只有空格,最终得到这样的东西:

AAAAAAAAAAAAAGTCGCTCGGAACCTGCTTCAAGAGTCTAGCTCGATAAAGCTTAGATCTGATATAGATGAGATAGAGTGAGGATCTTGATCTTTAGGAG

我尝试过:

tr -d "\t\r\n\v\f" < file_spaces.txt > fileNOspaces.txt

但它没有用,我看到完全相同的\n\t。我错过了什么?

3 个答案:

答案 0 :(得分:0)

这有效:

$ cat foo
foo     bar     baz
qux
quux
quuux
$ tr -d '\t\n' < foo
foobarbazquxquuxquuux

答案 1 :(得分:0)

您好以下脚本将满足您的要求。 while循环将所有行放入由空格分隔的单行中,sed命令将删除所有空格,最后生成一行。

line=$(cat file_spaces.txt |  while read line; do echo -n "$line "; done)
echo $line |sed 's/ //g' > fileNOspaces.txt

 line=$(while read line; do echo -n "$line "; done < t1.txt)
 echo $line
 echo $line |sed 's/ //g' > fileNOspaces.txt

您的最终输出将是: -

 AAAAAAAAAAAAAGTCGCTCGGAACCTGCTTCAAGAGTCTAGCTCGATAAAGCTTAGATCTGATATAGATGAGATAGAGTGAGGATCTTGATCTTTAGGAG

如果从不同的地方(例如/full/path/file_spaces.txt

)运行,也始终提供完整路径

答案 2 :(得分:0)

如何简单使用:

tr -d '[:space:]' < file_spaces.txt > fileNOspaces.txt

来自男人isspace(3)

checks for white-space characters.  In the "C" and "POSIX"
locales, these are: space, form-feed ('\f'), newline ('\n'),
carriage return ('\r'), horizontal tab ('\t'), and vertical
tab ('\v').