unix - 如何在 unix 的现有文件中添加新列?
问题描述
我想在我的文件中添加两个新列:现有文件有 2 列:
ABCD,1234
QWER,3333
TTYY,2323
YYPP,1789
新文件:要添加 2 列(字段)。 --> 第三个字段应该与第一个字段具有相同的值。--> 第 4 个字段将始终具有相同的值 'XXXX'
ABCD,1234,ABCD,XXXX
QWER,3333,QWER,XXXX
TTYY,2323,TTYY,XXXX
YYPP,1789,YYPP,XXXX
请帮忙。谢谢。
解决方案
您可以使用内部 shell 循环:
while IFS=, read first second; do
echo "$first,$second,$first,XXXX"
done <your_file.dat >new_file.dat
但awk
在大多数情况下使用更快:
awk -F, -vOFS=, '{print $1,$2,$1,"XXXX"}' your_file.dat >new_file.dat
-F,
告诉输入字段分隔符awk
是,
-vOFS=,
告诉输出字段分隔符awk
是,
推荐阅读
- python - 如何动态更改 Django FileField() 的存储?
- c++ - glDrawElements 在 Linux 下工作,但在 Windows 下不工作
- php - PHP oracle连接不回滚
- sql - 基于特定字段值的 SQL 选择
- sql-server - 发送的电子邮件格式不正确
- react-native - React - 导航 headerRight 未显示
- sql-server - SSIS 没有使用正确的动态数据库
- c++ - 浮点数和字节数组问题的 C++ 联合
- php - 使用 PHP 将 CSV 输出到表会创建额外的头
- ruby-on-rails - Ruby on Rails - Form_for 中选择和禁用的第一个选项