perl – 将文件的所有单独段落放在一个单独的行中
发布时间:2020-12-16 06:26:13 所属栏目:大数据 来源:网络整理
导读:我有一个包含序列数据的文件,其中每个新段落(由两个空行分隔)包含一个新序列: #exampleASDHJDJJDMFFMFAKAKJSJSJSL---SMSM-....SKSKK....SKSKJHDDSNLDJSCCAK..SJSJSL--HGAHSM---..SKSKK-.-GHH 我想得到一个文件看起来像: ASDHJDJJDMFFMFAKAKJSJSJSL---SMSM-
我有一个包含序列数据的文件,其中每个新段落(由两个空行分隔)包含一个新序列:
#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 但是这只是删除了整个文件:S 任何帮助都会受到赞赏 – 不必是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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |