将(各种大小的)行拆分为两列,保持列中的第一个单词

Posted

技术标签:

【中文标题】将(各种大小的)行拆分为两列,保持列中的第一个单词【英文标题】:Split (various sized) lines into two columns keeping the first word in a column 【发布时间】:2019-06-27 15:39:50 【问题描述】:

我想逐行重新格式化包含多个单词的文本文件:每个单词都应位于单独的行中,从原始行的第一个单词开始。

原始文本文件如下所示:

line1 word1 word2 word3
line2 word4
line3 word5 word6

预期的结果应该是

line1 line1
line1 word1
line1 word2
line1 word3
line2 line2
line2 word4
line3 line3
line3 word5
line3 word6

其实所有的词都是一样的:一行的第一个词和其他的没有区别,这个solution不行。

作为 awk 的初学者,我试过这个

awk 'BEGIN FS=" "; OFS="\n"  x=$1; $1=$1; printf "%s", x "\t" $0 "\n"'

但结果是这样的

line1   line1
word1
word2
word3
line2   line2
word4
line3   line3
word5
word6

感谢您的帮助!

【问题讨论】:

【参考方案1】:

请您尝试以下操作:

awk 'for(i=1;i<=NF;i++)print $1,$i'  Input_file

【讨论】:

以上是关于将(各种大小的)行拆分为两列,保持列中的第一个单词的主要内容,如果未能解决你的问题,请参考以下文章

如何将单独列中冒号前后的单词拆分为sql中的行

使用sas proc转置将行拆分为两列

Magento:将产品页面中的产品选项显示为两列中的列表元素

根据两列中的文本拆分行(Python,Pandas)

如何将包含日期时间的 DataFrame 列拆分为两列:一列包含日期,另一列包含一天中的时间?

Magento:在产品页面中将产品选项显示为两列中的列表元素