bash - 如何使用 linux 命令在现有的制表符分隔文件中附加索引?
问题描述
我在下面有一个文件,它是制表符分隔的。
TK 015_LIT NA CAT mask
我希望它被复制以使其成为大文件,如下所示。
TK 015_LIT NA CAT mask1
TK 015_LIT NA CAT mask2
TK 015_LIT NA CAT mask3
TK 015_LIT NA CAT mask4
TK 015_LIT NA CAT mask5
TK 015_LIT NA CAT mask6
但是,我将其编码如下,但它不起作用,因为它旁边的数字mask
始终为零,即使我增加了它。我的代码如下所示。
counter=0
for start in {1..5}
do
awk '{printf("%s \t %s \t %s \t %s \t %s \t %d \n",$1,$2,$3,$4,$5,$counter)}' ./medium/cause1
let counter=1+$counter
echo $counter
done
无论如何如何实现我的目标?
解决方案
您可以使用以下 awk one-liner 来做到这一点:
awk -v times=5 '{while(i<times) print $0(++i)}' file
更改times
变量以获得不同的行数。您还可以将 shell 变量传递给 awk,例如:
awk -v times="$VarFromShell" '{.....
推荐阅读
- arrays - 如何使用 for 循环根据用户输入制作多个相似的数组?
- typescript - 未找到 mapbox-sdk-js 的子模块的 Typescript 导入错误
- github - 在 Github Pages 中删除自定义页面后,原始页面无法正常工作
- c# - .NET Core 在错误的位置发布文件夹
- javascript - 如何在地图中使用等待?
- javascript - 我正在研究暗模式偏好。Windows 应用程序
- android - 将 Android 的 Connection(来自 ConnectionService)与 OpenTok 音频流集成
- microsoft-graph-api - Microsoft Graph 返回未找到资源
- typescript - 类型具有私有属性的单独声明 - urql 与 @urql
- node.js - Chrome v88+ 和 Nestjs 服务器上的 socket-io 连接出现 CORS 错误