awk - 如何根据另一列的长度(使用 awk)将一列的内容拉伸(stretch) n 倍?

标签 awk sed command-line

出于解析目的,我需要在命令行内根据另一列的字符数将第一列的内容拉伸(stretch) n 次。

注意: Col2 包含混合类型:<>,.[A-Za-z]

我应该像这样:

cat myFile.tsv 

Col1    Col2
Text1    XXXX
Text2    XX
Text3    XXX

进入此:

cat myNewFile.tsv 

Col1
Text1    
Text1    
Text1    
Text1    
Text2    
Text2 
Text3    
Text3    
Text3   

您有什么有效的建议吗? 谢谢你:D!!

最佳答案

使用 awk:

awk 'NR==1{print $1; next} {for(i=1; i<=length($2); i++){print $1}}' file

NR is current row number.

输出:

Col1
Text1
Text1
Text1
Text1
Text2
Text2
Text3
Text3
Text3

关于awk - 如何根据另一列的长度(使用 awk)将一列的内容拉伸(stretch) n 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62296600/

相关文章:

perl - 如果第二个字段长于 7 个字符,则 awk 或 perl 单行打印行

linux - 如何用特定列中的字符替换空格?

c - 仅从 C 代码中提取函数名称及其注释

java - 手动编译android应用程序的麻烦

linux - 在 fish shell 中将 awk 输出设置为变量

regex - 从两个文件中的列中获取值

bash - 如何使用 awk 解析 Amazon S3 日志?

bash 将整数添加到字符串

Java:如何从命令行导入 jar 文件

batch-file - 到 "Call"或 "Not to Call"一个批处理文件?