linux - 整个文件中的awk定界符

标签 linux bash awk

输入文件是这样的:

Scene  
some  
text  
...  
Scene  
some  
more  
text

我希望能够在每个“场景”之间打印文本(通过打印 $0、$1 等。就像 cut -d -f 那样)。
我使用 awk 尝试了很多东西,但我不明白如何让它工作。
awk -F '^Scene' '{print $1}' file 打印整个文件,
awk '/^Scène/{ print $1 } file' 打印它在文件中找到的所有 Scene
我想我无法理解 awk 的逻辑。

最佳答案

使用 gnu awk 可以设置自定义记录分隔符:

awk -v RS='Scene[[:space:]]*' 'NF' file

some
text
...


some
more
text
  • -v RS='Scene[[:space:]]*' 会将输入记录分隔符设置为 Scene 后跟可选的空格。

关于linux - 整个文件中的awk定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574395/

相关文章:

bash - 如何根据从第二个文件获取的值范围排除文件中的行

linux - 如何指示 cron 每两周执行一次作业?

linux - 如何离线安装zbase62

linux - 用户态进程是否可以处理 linux 中的 OOM 错误?

windows - 如何在 git bash 中设置环境变量?

java - Bash 命令检查 Linux 上是否安装了 Oracle 或 OpenJDK java 版本

bash 函数定义给出语法错误

bash - 使用 awk 在文件中搜索十六进制值时,版本 4.0 和 4.1 的不同行为

java - 使用 Java 时无法解压缩存档,但可以在终端 - Linux 中使用

linux - 用于查找该目录中保留过去 7 天内创建的文件的空间有多少的命令。不使用 `find`