Input 使用awk或sed提取每列的第一个字符,并将其存储在单独的文件中
我有一个像下面这样的文件Input 使用awk或sed提取每列的第一个字符,并将其存储在单独的文件中,input,awk,Input,Awk,我有一个像下面这样的文件 AT AT AG AG GC GC GG GC 我想提取每个列的第一个和最后一个字符,并将它们存储在两个不同的文件中 文件1: A A A A G G G G 文件2: T T G G C C G C 我的输入文件很大。这是一种我可以在awk或sed中完成的方式吗?只需两次就可以轻松完成: sed 's/\([^ ]\)[^ ]/\1/g' file > file1 sed 's/[^ ]\([^ ]\)/\1/g' file > file2 一次传
AT AT AG AG
GC GC GG GC
我想提取每个列的第一个和最后一个字符,并将它们存储在两个不同的文件中
文件1:
A A A A
G G G G
文件2:
T T G G
C C G C
我的输入文件很大。这是一种我可以在awk或sed中完成的方式吗?只需两次就可以轻松完成:
sed 's/\([^ ]\)[^ ]/\1/g' file > file1
sed 's/[^ ]\([^ ]\)/\1/g' file > file2
一次传球是一项挑战…两次传球很容易做到:
sed 's/\([^ ]\)[^ ]/\1/g' file > file1
sed 's/[^ ]\([^ ]\)/\1/g' file > file2
一次传球是一项挑战…两次传球很容易做到:
sed 's/\([^ ]\)[^ ]/\1/g' file > file1
sed 's/[^ ]\([^ ]\)/\1/g' file > file2
一次传球是一项挑战…两次传球很容易做到:
sed 's/\([^ ]\)[^ ]/\1/g' file > file1
sed 's/[^ ]\([^ ]\)/\1/g' file > file2
一次完成是一项挑战…编辑1:为您的多行编辑而修改 如果您打算编辑并共享它,您可以编写一个perl脚本并传入文件名。这只在文件中循环一次,不需要将文件存储在内存中 文件“seq.pl”: 文件“full.seq”: 文件“f1.seq”: 文件“f2.seq”:
编辑1:为多行编辑而修改 如果您打算编辑并共享它,您可以编写一个perl脚本并传入文件名。这只在文件中循环一次,不需要将文件存储在内存中 文件“seq.pl”: 文件“full.seq”: 文件“f1.seq”: 文件“f2.seq”:
编辑1:为多行编辑而修改 如果您打算编辑并共享它,您可以编写一个perl脚本并传入文件名。这只在文件中循环一次,不需要将文件存储在内存中 文件“seq.pl”: 文件“full.seq”: 文件“f1.seq”: 文件“f2.seq”:
编辑1:为多行编辑而修改 如果您打算编辑并共享它,您可以编写一个perl脚本并传入文件名。这只在文件中循环一次,不需要将文件存储在内存中 文件“seq.pl”: 文件“full.seq”: 文件“f1.seq”: 文件“f2.seq”: 您可以尝试以下方法: write-in-test.awk
#!/usr/bin/awk -f
BEGIN {
# FS = "[\s]+"
outfile_head="file1"
outfile_tail="file2"
}
{
num = NF
for(i = 1; i <= NF; i++) {
printf "%s ", substr($i, 0, 1) >> outfile_head
printf "%s ", substr($i, length($i), 1) >> outfile_tail
}
}
#/usr/bin/awk-f
开始{
#FS=“[\s]+”
outfile_head=“file1”
outfile_tail=“file2”
}
{
num=NF
对于(i=1;i>外压头
printf“%s”,substr($i,长度($i),1)>>outfile\u tail
}
}
然后运行以下命令:
./test.awk文件您可以尝试以下方法:
write-in-test.awk
#!/usr/bin/awk -f
BEGIN {
# FS = "[\s]+"
outfile_head="file1"
outfile_tail="file2"
}
{
num = NF
for(i = 1; i <= NF; i++) {
printf "%s ", substr($i, 0, 1) >> outfile_head
printf "%s ", substr($i, length($i), 1) >> outfile_tail
}
}
!/usr/bin/awk-f
开始{
#FS=“[\s]+”
outfile_head=“file1”
outfile_tail=“file2”
}
{
num=NF
对于(i=1;i>外压头
printf“%s”,substr($i,长度($i),1)>>outfile\u tail
}
}
然后运行以下命令:
./test.awk文件您可以尝试以下方法:
write-in-test.awk
#!/usr/bin/awk -f
BEGIN {
# FS = "[\s]+"
outfile_head="file1"
outfile_tail="file2"
}
{
num = NF
for(i = 1; i <= NF; i++) {
printf "%s ", substr($i, 0, 1) >> outfile_head
printf "%s ", substr($i, length($i), 1) >> outfile_tail
}
}
!/usr/bin/awk-f
开始{
#FS=“[\s]+”
outfile_head=“file1”
outfile_tail=“file2”
}
{
num=NF
对于(i=1;i>外压头
printf“%s”,substr($i,长度($i),1)>>outfile\u tail
}
}
然后运行以下命令:
./test.awk文件您可以尝试以下方法:
write-in-test.awk
#!/usr/bin/awk -f
BEGIN {
# FS = "[\s]+"
outfile_head="file1"
outfile_tail="file2"
}
{
num = NF
for(i = 1; i <= NF; i++) {
printf "%s ", substr($i, 0, 1) >> outfile_head
printf "%s ", substr($i, length($i), 1) >> outfile_tail
}
}
!/usr/bin/awk-f
开始{
#FS=“[\s]+”
outfile_head=“file1”
outfile_tail=“file2”
}
{
num=NF
对于(i=1;i>外压头
printf“%s”,substr($i,长度($i),1)>>outfile\u tail
}
}
然后运行以下命令:
/test.awk文件,其中GNU awk用于gensub():
您可以使用gsub()和几个变量在任何awk中执行类似操作。使用GNU awk for gensub():
您可以使用gsub()和几个变量在任何awk中执行类似操作。使用GNU awk for gensub():
您可以使用gsub()和几个变量在任何awk中执行类似操作。使用GNU awk for gensub():
您可以使用gsub()和几个变量在任何awk中执行类似操作。请告诉我们您到目前为止尝试了什么。请告诉我们您到目前为止尝试了什么。请告诉我们您到目前为止尝试了什么。请告诉我们您到目前为止尝试了什么。