shell - awk:在 awk 脚本中分配一个 shell 变量

标签 shell unix awk

我在 awk 中遇到一种情况,我需要将输入格式转换为另一种格式,然后使用单独处理的记录数。有什么方法可以使用 shell 变量来获取 END 部分中的 NR 的值?像这样的东西:

cat file1 | awk 'some processing END{SHELL_VARIABLE=NR}' > file2

然后在 awk 之外使用 SHELL_VARIABLE。

我不想处理文件然后单独执行 wc -l,因为文件很大。

最佳答案

一种方法:在 中使用重定向命令并在 END block 中打印结果。并使用命令替换来读取 shell 变量中的结果:

my_var=$(awk '{ some processing; print "your output" >>file2 } END { print NR }' file1)

关于shell - awk:在 awk 脚本中分配一个 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165607/

相关文章:

android - 如何从当前时间戳获取 shell 输出。 Linux、Unix

linux - 由 cron 运行时,Shell 脚本无法完全运行

c - fork() 中的写时复制如何工作?

python - 有没有办法将 Python Shell 输出放在 tkinter 窗口中?

C:关于通过使用超过当前 seek_set 的偏移量来使用 lseek 系统调用

shell - 从校验和输出中的文件名中去除目录

awk - 使用 awk 拆分列

shell - 如何将变量从 awk 传递到 shell 命令?

c - 如何在 Linux shell 中添加命令来检查电池电量?

json - 使用 Shell 脚本将 .txt 转换为 json