Board logo

标题: [文本处理] [已解决] awk 的输出保存到变量 [打印本页]

作者: newswan    时间: 2021-4-6 10:08     标题: [已解决] awk 的输出保存到变量

本帖最后由 newswan 于 2021-4-6 22:36 编辑

批处理中使用 awk 格式化文本
  1. echo a b | awk '{printf "%%6s %%6s\n",$1,$2}'
复制代码
awk可以输出到标准输出

但是,怎么把awk的输出保存到变量?
  1. for /f "usebackq tokens=*" %%a in (`echo a b ^| awk '{printf "%%%%6s %%%%6s\n",$1,$2}'`) do echo %%a
复制代码
输出的是
  1. ab
复制代码
请指教!
作者: Batcher    时间: 2021-4-6 11:32

回复 1# newswan
  1. @echo off
  2. for /f "delims=" %%a in ('echo a b ^| gawk "{printf \"%%6s %%6s\n\",$1,$2}"') do (
  3.     echo %%a
  4. )
  5. pause
复制代码

作者: smss    时间: 2021-4-6 11:41

set 不能用了吗
作者: newswan    时间: 2021-4-6 19:08

回复 2# Batcher

谢谢,delims 很关键
  1. for /f "usebackq delims=" %%a in (`echo a b ^| awk '{printf "%%6s %%6s\n"^,$1^,$2}'`) do (echo %%a)
复制代码
我习惯用 usebackq ,` 里面使用 ' " 比较方便
作者: netdzb    时间: 2021-4-7 09:30

回复 4# newswan

这个纯shell怎么写?
作者: newswan    时间: 2021-4-8 00:22

回复 5# netdzb
  1. str=$(echo a b | awk '{ printf "%6s %6s\n",$1,$2  }')
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2