将awk打印重定向到文件

sus*_*mar 3 shell awk solaris csh

我可以通过以下命令获得solaris机器的cpu Mhz.

% /usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print $6}'
Run Code Online (Sandbox Code Playgroud)

1200

当我运行以下命令时,awk输出没有被重定向.

%  csh -cf "/usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print $6}' > myoutput"

% cat myoutput
Run Code Online (Sandbox Code Playgroud)

sparcv9处理器的工作频率为1200 MHz,

如何获得以下结果

% cat myoutput
Run Code Online (Sandbox Code Playgroud)

1200

Sha*_*hin 9

您的问题是$6在传递给csh(并在awk命令中使用)之前由现有shell进行评估.

逃避$应该解决问题:

csh -cf "/usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print \$6}' > myoutput"
Run Code Online (Sandbox Code Playgroud)

或者,更简洁:

csh -cf "/usr/sbin/psrinfo -v | awk '/operate/{print \$6; exit}' > myoutput"
Run Code Online (Sandbox Code Playgroud)