【发布时间】:2020-06-26 02:57:26
【问题描述】:
我最近开始学习 bash,但在做作业时遇到了问题,所以我有一个 txt 文件,其中包含类似的内容
foo:abc:200:1:1:1
foobar:asd:100:3:2:1
bar:test:100:2:2:2
其中第一列是书名,后跟作者姓名,然后是价格、可用数量和售出数量,均以分隔符“:”分隔
这里的目标是根据用户输入的名称和作者删除一本书。
我四处搜索,发现 sed 可能可以帮助我解决这个问题,我尝试通过单独删除标题来测试 sed
sed /"foo"/d Book.txt
我希望输出是
foobar:asd:100:3:2:1
bar:test:100:2:2:2
但是输出是
bar:test:100:2:2:2
这告诉我txt文件中包含“foo”的任何行都将被删除
所以我想问一下
- 有什么方法可以使用 sed 使其只删除完全匹配而不是包含 foo 的行?
- 有什么方法可以在 sed 中使用分隔符,以便我可以同时使用标题和作者?
- 我应该使用 sed 以外的东西吗?
【问题讨论】: