【发布时间】:2024-01-19 18:30:01
【问题描述】:
我有这个输入文件 F1:
Good morning!
Have a nice day;
see you again the next day;
Bye;
我想打印“Have”和“day”之间的行。
我试过这个命令:*sed -n '/Have/,/day/ p*' F1
输出是:祝你有美好的一天
但我也希望打印第二行,因为它也具有相同的“日”模式。
期望的输出:
祝你有美好的一天;
第二天再见;
谁能帮我解决这个问题? 提前致谢。
【问题讨论】:
-
阅读this。能有帮助吗?如果是,我可以格式化一个漂亮的答案。
-
sed '/Have/,/day/!d' file或sed -n '/Have/,/day/p' file已经有所需的输出。/.../,/.../切换超过 2 行或更多行,它不会在单行上切换。 -
您的要求完全不清楚。您想从文件中的第一个
Have打印到最后一个day还是从第一个 Have 到不在同一行的第一天,或者从最后一个 Have 到它之后的第一天或其他什么?你想打印文件中这个范围的每一次出现还是只打印第一个或只打印最后一个或其他?如果它们嵌套了会发生什么? edit 您的问题是为了清楚地说明您的要求并提出更好的示例输入并提供相关的预期输出,如果您需要帮助解决您的实际问题。