【问题标题】:Redirection output to a file [closed]将输出重定向到文件[关闭]
【发布时间】:2013-01-14 14:49:34
【问题描述】:

cat sun.csv 如下 “文件列表|这里是|ls -l” 我能够得到输出 但无法将其重定向到文件(即asd.csv) 如何重新定向完整的输出? 这是代码 a.sh(文件名)

#/usr/bin/ksh
awk ' BEGIN{FS="|"} {printf "\033[4m%s:\n\033[0m", $1;print $2;system($3);} ' sun.csv >> asd.csv

$./a.sh 

cat asd.csv 在printf "\033[4m%s:\n\033[0m", $1;print $2; 之前输出正确,之后没有任何输出

【问题讨论】:

  • 这里不能复制..
  • 你能提供一些示例输入和预期输出吗?
  • more -v asd.csv 工作吗? -v 保留由 \033[Xm ansi 代码 设置的颜色/等
  • 问题可能出在system($3) 调用上。首先将其替换为:print "system (" $3 ");" 以显示将发生的系统调用,并检查它是否存在潜在错误
  • @Olivier Dulac 是对的,我也怀疑同一个地方,但不知道该怎么做。如果我是正确的,Coz system() 将只返回 o 或 1,所以不知道如何更改它

标签: shell awk


【解决方案1】:

你需要这样做:

$3 | getline var; print var; close($3)

而不是

system($3)

但我不建议做任何一个。如果您告诉我们您想要做什么,我们可能会提供帮助。

【讨论】:

    猜你喜欢
    • 2016-08-09
    • 2013-10-11
    • 2023-03-19
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2015-08-31
    相关资源
    最近更新 更多