samshers Asked: 2021-12-24 14:06:50 +0800 CST2021-12-24 14:06:50 +0800 CST 2021-12-24 14:06:50 +0800 CST awk - 是否可以定义我的自定义换行符/单词? 772 AWK 逐行读取和处理输入数据。我的数据有它自己的线定义。那么是否可以配置 AWK 以将我定义为行尾的字符或单词考虑在内。 就像使用-F选项一样,我们定义了字段分隔符。同样,是否也可以定义行分隔符。 注意:如果这是可能的,是否同样适用于 grep 和其他类似的 linux utils。 awk sed 1 个回答 Voted Best Answer steeldriver 2021-12-25T14:00:12+08:002021-12-25T14:00:12+08:00 AWK 逐行读取和处理输入数据。 更准确地说,awk 读取和处理记录——默认的记录分隔符 RS恰好是换行符。 没有直接的命令行等效-F开关(相当于修改字段分隔符内部变量,FS),但您可以通过直接修改来指定备用记录分隔符RS,这通常在开始块中完成 awk 'BEGIN{RS='@'} ... ' 或通过命令行使用-v变量传递选项 awk -v RS='@' ' ... ' 另请参阅 GNU Awk 用户指南的以下部分: 4.1 输入如何拆分为记录 7.5.1 控制 awk 的内置变量 尽管特定于 awk 的 GNU 实现,但该指南指出了行为特定于实现的位置。特别是,并非所有实现都支持使用正则表达式 for RS(事实上,POSIX 规范只提供了单个字符分隔符)。
更准确地说,awk 读取和处理记录——默认的记录分隔符
RS
恰好是换行符。没有直接的命令行等效
-F
开关(相当于修改字段分隔符内部变量,FS
),但您可以通过直接修改来指定备用记录分隔符RS
,这通常在开始块中完成或通过命令行使用
-v
变量传递选项另请参阅 GNU Awk 用户指南的以下部分:
尽管特定于 awk 的 GNU 实现,但该指南指出了行为特定于实现的位置。特别是,并非所有实现都支持使用正则表达式 for
RS
(事实上,POSIX 规范只提供了单个字符分隔符)。