【问题标题】:tr command not able to direct the Output?tr 命令不能直接输出?
【发布时间】:2013-01-18 12:13:58
【问题描述】:

我有一个文件 file.txt 女巫有这些条目

纽约

洛杉矶

SF

我运行了命令 tr '\n' ','

我需要在同一个 file.txt 文件中的所有这些输出,所以我像这样重定向输出

tr '\n' ',' file.txt,

但它没有在 file.txt 中放入任何内容,结果文件为空,谁能向我解释为什么 tr 的输出由于重定向而丢失。

【问题讨论】:

    标签: linux sed tr


    【解决方案1】:

    因为它首先打开输出文件,删除文件中的内容,然后对 tr 命令没有任何感觉并返回到空文件中

    tr '\n' ',' < file.txt > file2.txt 
    

    会起作用

    【讨论】:

      【解决方案2】:

      由于您已使用 sed 标记您的问题,我建议使用 sed oneliner,sed 也可以使用选项“-i”“就地”更改您的文件

      sed -i ':a $!N; s/\n/,/; ta' file
      

      或使用 awk

       

      awk '{x=x""sprintf($0",")}END{gsub(/,$/,"",x);print x}' file
      

      不像 sed,awk 没有“就地”更改选项,你必须:

      awk '...' file > /tmp/mytmp && mv /tmp/mytmp file
      

      【讨论】:

        【解决方案3】:

        如果您只想用, 替换换行符,您可以这样做

        awk 'ORS=","' temp.txt &gt; file.txt

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-12-11
          • 2013-01-14
          • 1970-01-01
          • 2023-03-26
          • 2013-06-08
          • 1970-01-01
          • 2020-02-07
          相关资源
          最近更新 更多