我有一个包含序列数据的文件,其中每个新段落(由两个空行分隔)包含一个新序列:
#example ASDHJDJJDMFFMF AKAKJSJSJSL--- SMSM-....SKSKK ....SK SKJHDDSNLDJSCC AK..SJSJSL--HG AHSM---..SKSKK -.-GHH
我想得到一个文件看起来像:
ASDHJDJJDMFFMFAKAKJSJSJSL---SMSM-....SKSKK....SK SKJHDDSNLDJSCCAK..SJSJSL--HGAHSM---..SKSKK-.-GHH
每个序列长度相同(如果有帮助的话).
我也希望在存储在不同directiories中的多个文件上执行此操作.
我刚刚尝试过
sed -e '/./{H;$!d;}' -e 'x;/regex/!d' ./text.txt
任何帮助都会受到赞赏 – 不必是sed,如果你知道如何在perl或其他东西中做到那么那也很棒.
谢谢.
解决方法
awk ' /^[[:space:]]*$/ {if (line) print line; line=""; next} {line=line $0} END {if (line) print line} '
perl -00 -pe 's/\n//g; $_.="\n"'
对于多个文件:
# adjust your glob pattern to suit,# don't be shy to ask for assistance for file in */*.txt; do newfile="/some/directory/$(basename "$file")" perl -00 -pe 's/\n//g; $_.="\n"' "$file" > "$newfile" done