在字符串上使用awk

mon*_*ool 7 linux bash awk

我可以使用awk提取字符串中的第一列或任何列吗?实际上我正在使用一个文件并将其读取到一个变量我想在该变量上使用AWK并完成我的工作.

这怎么可能?有什么建议.

jed*_*rds 15

打印第一栏*:

<some output producing command> | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

打印第二栏:

<some output producing command> | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

等等

哪里<some output producing command>cat filename.txtecho $VAR

例如,ls -l | awk '{print $9}'提取第九列,这就像......尴尬的方式ls -1

*列由分隔空格定义.


编辑:如果您的文本已经在变量中,例如:

VAR2=$(echo $VAR | awk '{print $9}')
Run Code Online (Sandbox Code Playgroud)

如果您将9更改为所需列,则可以正常工作.

  • 使用bash你可以使用"here-string":`VAR2 = $(awk'{print $ 1}'<<<"$ VAR1")` (3认同)