【问题标题】:Remove newline from awk从 awk 中删除换行符
【发布时间】:2019-03-29 06:52:09
【问题描述】:

我使用 awk 逐行打印文件。我需要使用 awk 删除每个换行符。

我的代码

while($lines>0)
    echo -n "Output: '"
    awk NR==$i output.txt
    echo "'"
    @ i++
    @ lines--
end

输出必须是这样的: 输出:“某事”

也许我需要更好的解决方案

我的文件如下所示:
名称1 10
名称2 12
名称3 5

我的输出必须是:
输出:'name1 10'
输出:'name2 12'
输出:'name3 5'

谢谢

【问题讨论】:

  • 我不明白这个要求。请发布带有相关预期输出的示例数据。
  • 我需要这样的输出:Output 'line from file'
  • 你想要tr -d '\n'< file这样的东西吗?
  • 抱歉,您的代码(和示例数据)毫无意义。根据你的标题,试试awk -v OFS=" " {print $0}' file。祝你好运。
  • 您的示例输出现在进一步混淆了问题。根据您的标题“删除换行符”。您的示例输出中有换行符。另外,您真的希望它包含“输出:”这个词吗?并且您真的想要文件中的文本用单引号括起来(如您的示例所示)。不要在 cmets 中回复,将您的 Title Q 和您的示例输入和输出修复为您正在尝试解决的问题。祝你好运。

标签: unix awk csh


【解决方案1】:

...回答提供的示例。

我的文件:

$ cat myfile
name1 10
name2 12
name3 5

awk:

$ awk '{ print("Output: \047" $0 "\047"); }' myfile
Output: 'name1 10'
Output: 'name2 12'
Output: 'name3 5'

sed:

$ sed "s/.*/Output: '&'/" myfile
Output: 'name1 10'
Output: 'name2 12'
Output: 'name3 5'

重击:

$ while read -r LINE; do echo "Output: '${LINE}'"; done < myfile
Output: 'name1 10'
Output: 'name2 12'
Output: 'name3 5'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 2013-06-09
    • 2015-10-25
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2019-09-15
    相关资源
    最近更新 更多