【问题标题】:How do i delete every character except every 8th character in unix我如何删除除unix中每8个字符之外的每个字符
【发布时间】:2020-10-24 16:44:54
【问题描述】:

我的文件代码如下所示:

lqjzpvfyimberiaznkerbdozuqtwysbnxftldcze oukasyjelpnsiujsjaeotcqtivvadno ymmijtvcjfpkxtrlfswjomgakltkzzdixjatzwirgbtiiygerzpnbovmkdqhskhekuusovpnsmjubmltyfxmpxn zirhbrclluzwygwecwxvnho dmvcwrzmvrzjxbzecqfkkdaiodyawpnlmszjzcnlmqhkiuzevxuqeeludrkvwokrauvciwv aholqeeopdnvrnwsnybhadq

我想保留第一个字符而不是删除下一个 7 而不是保留下一个,等等以获得类似的东西

linux est clairement le meilleur os

我可以用什么来获得这个

感谢您的帮助!

【问题讨论】:

    标签: unix terminal


    【解决方案1】:
    echo "lqjzpvfyimberiaznkerbdozuqtwysbnxftldcze oukasyjelpnsiujsjaeotcqtivvadno ymmijtvcjfpkxtrlfswjomgakltkzzdixjatzwirgbtiiygerzpnbovmkdqhskhekuusovpnsmjubmltyfxmpxn zirhbrclluzwygwecwxvnho dmvcwrzmvrzjxbzecqfkkdaiodyawpnlmszjzcnlmqhkiuzevxuqeeludrkvwokrauvciwv aholqeeopdnvrnwsnybhadq" | sed 's/\(.\)......./\1/g'
    linux est clairement le meilleur os
    

    您可以使用 sed 作为示例。它是一种工具,可用于逐行转换流中的模式。

    命令 sed 's/\(.\)......./\1/g' 执行以下操作:

    • s 表示替换命令看起来像 s/-pattern-/-replace-/
    • 模式\(.\).......表示。表示任何字符
    • \(\) 告诉它捕获组中的第一个字符(组 1,因为它是第一个)
    • 另外 7 个 '.'是匹配全套 8 个字符的 7 个字符
    • replace 设置为 \1,表示将整个模式(8 个字符)替换为第 1 组中引用为 \1 的模式
    • 末尾的 g 告诉 sed 重复该模式直到行尾(这将匹配前 8 个字符,然后是接下来的 8 个字符,依此类推。直到行尾。

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 1970-01-01
      • 2020-04-06
      • 2014-08-20
      • 2015-05-18
      • 1970-01-01
      • 2016-10-06
      • 2020-01-05
      • 1970-01-01
      相关资源
      最近更新 更多