【问题标题】:Transpose column into row based on the new line根据新行将列转置为行
【发布时间】:2020-10-17 03:07:08
【问题描述】:

我有这样的文件

d
e
e

s
k

a
b
c
d

我只需要像这样转换

dee
sk
abcd

为此,我使用了 awk 和 xargs

xargs < file|awk '{ gsub (" ", "", $0); print}'

但它没有产生预期的结果

【问题讨论】:

    标签: awk xargs


    【解决方案1】:
    $ awk -v RS= -v OFS='' '{$1=$1}1' file
    
    dee
    sk
    abcd
    

    【讨论】:

      【解决方案2】:

      请您尝试关注一下。

      awk '
      !NF && value{
        print value
        value=""
        next
      }
      NF{
        value=value $0
      }
      END{
        if(value){
           print value
        }
      }' Input_file
      

      【讨论】:

        【解决方案3】:

        使用:

        perl -0pe 's/\n(?=.)//g' file
        

        输出

        dee
        sk
        abcd
        

        【讨论】:

          【解决方案4】:
          perl -l -00pe 'y/\n//d' file
          

          -00 类似于awk -v RS=

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-04-26
            • 2023-03-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-03-19
            • 1970-01-01
            相关资源
            最近更新 更多