【发布时间】:2021-08-20 20:01:56
【问题描述】:
假设我有一个文件teams,内容如下:
[Desktop Entry]
Version=1.0
Type=Application
Name=Microsoft Teams - Preview
Comment=Microsoft Teams for Linux is your chat-centered workspace in Office 365.
Exec=teams %U
Icon=teams
Terminal=false
StartupNotify=true
StartupWMClass=Microsoft Teams - Preview
Categories=Network;
MimeType=x-scheme-handler/msteams;
X-KDE-Protocols=teams
Actions=QuitTeams;
X-GNOME-UsesNotifications=true;
[Desktop Action QuitTeams]
Name=Quit Teams
我想删除一行Actions=QuitTeams;。这似乎很容易:
sed -i '/Actions=QuitTeams;/d' teams
另外,我想删除一行 [Desktop Action QuitTeams] 及其后面的所有内容(可能有新行)。
这似乎也很容易:
sed -i '/[Desktop Action QuitTeams]]/,$d' teams
我的问题是:我如何在一次 sed 执行中完成这两个步骤,即将所有正则表达式合并为一个? Sed 是首选,但也欢迎使用其他工具。
【问题讨论】:
标签: linux sed text-parsing in-place