我在Ubuntu工作,我试图删除文件中的所有空格,只获得一个长字符串。
我的文件在一个文本中有\t
和\n
,它应该是由字母组成的长字符串(它是基因组序列)。它看起来像:
AAAAAAAAAAAAAGTCGCTCGGAACCTGCTTCAAG
AGTCTAGCTCGATAAAGCTTAGATCTGATATAGATGAGATAGAGTGA
GGATCTTGATCTTTAGGAG
因此,我想要消除所有\n
和\t
,并写一个唯一的字符串,其中所有部分一个接一个地写,没有空格,也没有删除任何字母只有空格,最终得到这样的东西:
AAAAAAAAAAAAAGTCGCTCGGAACCTGCTTCAAGAGTCTAGCTCGATAAAGCTTAGATCTGATATAGATGAGATAGAGTGAGGATCTTGATCTTTAGGAG
我尝试过:
tr -d "\t\r\n\v\f" < file_spaces.txt > fileNOspaces.txt
但它没有用,我看到完全相同的\n
和\t
。我错过了什么?
答案 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').