regex - 使用 sed 命令在 UNIX 上处理正则表达式/扩展正则表达式
问题描述
我开始了一个 C 和 UNIX OS 类,但在处理正则表达式时遇到了一些麻烦,特别是使用 sed 命令。目前我正在处理和解析文本的assignmet。作业中的一项任务是获取一个 txt 文件,在使用 sed 时,我需要在以下条件下将整个文本解析为一个新文件:
- 新文件中的每一行不应超过 30 个字符(包括空格),中间不切字。所以基本上这意味着如果我们要从下一行添加第一个单词,它将超过 30 个字符。
- 新文件中唯一的空格应该是空格(“”)或换行符(“\n”)。
- 新文件中的所有行不应以制表符/空格开头或结尾或包含双空格。
- 我只能对 sed 使用 -r 选项。(而且一般我只能使用:grep、sed、cat、tr、cut、paste、head、tail、uniq 和 sort)
我真的很接近所需的输出,但与我的目标仍有一些差距。这让我最接近我需要实现的输出:
cat story.txt | tr -d ["\t","\n"] | sed -r 's/(.{,30}[^[:alpha:]])/\1\n/g'
目前我得到两个输出之一。我在删除标点符号时遇到问题,或者新行太多(取决于我尝试对正则表达式所做的更改)。
将不胜感激任何帮助或智慧!
解决方案
推荐阅读
- lua - init函数失败时如何避免box.once('init', function ...)的注册?
- java - 我无法编译 antler_test.java
- git - 将文件添加到本地 git 存储库,然后推送到远程:不起作用
- ecobee-api - 登录 ecobee 开发者门户有技巧吗?
- python - Python 2D 数组意外覆盖
- c# - C# 数组访问与 C++ PInvoke 指针访问
- google-apps-script - 将行从一张纸移动到另一张纸
- python - 使用 Spotify API 时是否存在非法 redirect_URI 错误的其他原因?
- tensorflow-federated - NameError:保存模型时未定义名称“FileCheckpointManager”
- html - 如何查看列表标签的数量