2024-09-29 21:27:52 发布
网友
我有许多fasta文件,想在行尾(标题行)附加文件名。我知道如何通过sed一个接一个地执行它,但是正在寻找一个更好的解决方案来处理许多文件。你知道吗
File1.txt >1 ACGTA File2.txt >2 GTCA
期望:
File1.txt >1_File1 ACGTA File2.txt >2_File2 GTCA
这适用于在OSX中使用sed的单个文件:
sed -i.bak '/>.*$/ s/$/_File1/' File1.txt
谢谢
您可以使用Perl的就地编辑功能:
perl -i.bak -p0e '$ARGV =~ s/\..*//; s/>.*/$&_$ARGV/' File*.txt
您可能需要根据文件名更改表达式,但基本上您希望遍历所有文件
#!/bin/bash for file in *.txt do #just for echo the current 'file' var for testing echo "$file" sed -i.bak '/>.*$/ s/$/_"$file"/' $file done
您可以使用这个简单的for循环:
for f in *.txt; do sed -i '' 's/^>.*/&_'"${f%.*}"'/' "$f" done
"${f%.*}"将从文件名中删除扩展名。你知道吗
"${f%.*}"
您可以使用Perl的就地编辑功能:
您可能需要根据文件名更改表达式,但基本上您希望遍历所有文件
您可以使用这个简单的for循环:
"${f%.*}"
将从文件名中删除扩展名。你知道吗相关问题 更多 >
编程相关推荐