加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读