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

标签 awk text-formatting

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

原始文本文件如下所示:

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

感谢您的帮助!

最佳答案

能否请您尝试以下操作:

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

关于awk - 将(各种大小的)行拆分为两列,将第一个单词保留在一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56794542/

相关文章:

linux - 以特定方式重新格式化文件内容

linux - 如何使用 awk 提取引用字段?

c# - 将文本框/标签中的文本颜色设置为红色并使其变为粗体

flutter - 限制 Flutter 中 TextFormField 中的前导零

html - 安全的 Web 文本格式

linux - 从日志文件中计算具有匹配模式的行

ubuntu - Linux删除行不删除最大值

bash - 从文件 B 的列表中删除文件 A 中的所有单词

google-apps-script - Apps脚本-发送电子邮件-将电子邮件内容设置为粗体-将Array.toString的结果格式设置为粗体

vim - 可以在 gVim 编辑器中以某种方式设置字母间距吗