unix - 如何一次性有效地将多列数据附加到制表符分隔文件
问题描述
到目前为止,我已经想出了如何只添加一列。我还有两列。我在这里简化了我的代码,但实际上我将列作为变量从另一个文件中获取,我有 100 个这样的文件,每个 50 MB,我应该添加这些列。
这是输入文件
1|True
2|Fals
我希望输出是
1|True|2018-05-10|2018-05-11|2018-05-12
2|Fals|2018-05-10|2018-05-11|2018-05-12
我写了这个
sed -i "s/.$/|2018-05-10/" $file
解决方案
编辑:根据 OP 日期不是系统日期,它们是变量,然后添加以下内容。
awk -v var_1=$(var1) -v var_2=$(var2) -v var_3=$(var3) '{print $0 OFS var_1 OFS var_2 OFS var_3}' OFS="|" Input_file
其中var_1
,var_2
和var_3
是awk
变量,var1
,var2
和var3
是 bash 变量。
使用 GNU date
,以下可能对您有所帮助。
awk -v today=$(date +%Y-%m-%d) -v tomorrow=$(date +%Y-%m-%d --date="+ 1 day") -v day_after=$(date +%Y-%m-%d --date="+ 2 day") '{print $0 OFS today OFS tomorrow OFS day_after}' OFS="|" Input_file
现在也添加非单线形式的解决方案。
awk -v today=$(date +%Y-%m-%d) -v tomorrow=$(date +%Y-%m-%d --date="+ 1 day") -v day_after=$(date +%Y-%m-%d --date="+ 2 day") '
{
print $0 OFS today OFS tomorrow OFS day_after
}
' OFS="|" Input_file
如果将更改保存到 Input_file 本身也附加> temp_file && mv temp_file Input_file
到上面的代码中。
推荐阅读
- google-cloud-dataflow - gcloud 数据流组件所需时间
- bash - 使用 bash 查找 PostgreSQL 数据库是否存在
- python - Multiprocessing with IMAP connection
- javascript - Group comments by posts id in an object
- excel - Excel - Two key value lists - Locate where Key is different but value is the same
- typescript - Typescript observable The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type
- batch-file - BATCH SCRIPT :删除文件中包含特定字符的行
- travis-ci - 如何部署 PHP 学说/phinx 迁移?
- youtube - 作为 YT 频道所有者,我可以在“下一个”部分设置要播放的下一个视频吗?
- javascript - Angular *ngFor : 访问下一个元素的数据