macos - mac 命令行中 RS 的 awk 问题

标签 macos awk

我有以下文本文件 records.text

IronMan
1
2
3


Batman
1
2
3

I have the following awk command

awk 'BEGIN{ FS="\n"; RS="\n\n"} {print NR, ":", $1, $2}' records.text

我得到以下输出

1: Ironman
2: 1
3: 2
4: 3
5: 
6: Batman
7: 1
8: 2
9: 4
Expected output:
1: Ironman 1
2: Batman 1

这是错误的。这意味着 RS 变量没有被拾取并且仍然使用默认的“\n”作为记录分隔符?还有其他人有同样的问题吗?有什么解决办法吗?

最佳答案

与 gnu awk 不同,OSX 的 BSD awk 不处理多字符记录分隔符。您必须尝试一种不同的方式,一次处理一行。

关于macos - mac 命令行中 RS 的 awk 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23586358/

相关文章:

replace - 使用 awk 仅替换一次 $4 和 $5 之间的分隔符

objective-c - Mac OS X,使用NSMutableArray导致Objective-C崩溃

cocoa - 使用图像和突出显示自定义 NSButtonCell

iphone - 垂直对齐 CATextLayer 中的文本?

macos - 无法在 macOS High Sierra 上打开 SQL 编辑器

regex - 搜索并追加新行 Linux

bash - 如何在 awk 中解析包含逗号的带引号字段的 CSV 文件?

linux - 使用 sed 从 XML 中删除属性

macos - 在 mac 上使用 JNA 从 JComponent 获取 NSWindow

unix - 删除具有特定图案的线条