我有一个制表符分隔的文本文件。有些行有10列,有些行有11列。我想添加一个额外的列到值为0的10列行的最后一列。我该怎么做?如何追加到选项卡分隔文本文件中具有较少列的行?
-1
A
回答
2
既然已经提到追加,可以awk
如下
awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file
的-F $'\t'
负责的标签分离部分的,BEGIN {OFS = FS}
用于设置输出场分离。
NF==10
只查找只有10条记录的行和{$0=$0"0"}1
用于重新创建添加了额外单词的行。
要写入到一个单独的文件中使用>
重定向操作员
awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file > output-file
要替换原文件使用mv
awk -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file > output-file ; mv output-file input-file
或者,如果您有最新的GNU Awk
(因为4.1.0
发布),它可以选择“inplace”文件编辑:
gawk -i inplace -F $'\t' 'BEGIN {OFS = FS} NF==10{$0=$0"0"}1' input-file
0
这可能为你工作(GNU SED):
sed -r 's/[^\t]+/&/11;t;s/$/\t0/' file
这与itsself取代第十一列,否则它增加了一个选项卡,然后0
。
相关问题
- 1. Python - 将列添加到现有选项卡分隔文件
- 2. php循环选项卡分隔文件
- 3. 将文本追加到文本文件中的现有行
- 4. 文本解析选项卡分隔文件
- 5. 如何将选项卡添加到一个文本文件
- 6. 如何将文本追加到现有的文本文件
- 7. 根据java中的列对选项卡分隔的文件进行排序
- 8. 文本追加到现有的文件
- 9. ios加载选项卡分隔文本字典和UIPickerView
- 10. 如何将一行文本追加到SQLCMD中的文件
- 11. 如何将文本追加到文件
- 12. 如何追加到文本文件?
- 13. 如何加载具有有时包含换行符的列的管道(|)分隔文本文件?
- 14. 追加到文本文件
- 15. 如何在文本文件中追加现有行
- 16. 追加到现有文本文件
- 17. 如何将一行文本追加到离子2中的现有文件中?
- 18. 如何读取含有文本行的某些文本,然后将此文本追加到缺少该文本行的多个文件的文本中?
- 19. 选项卡分隔文件到SQL查询(批量更新)
- 20. 导入选项卡分隔文件到sqlite - OperationalError近“)”
- 21. 追加到S3中的文本文件
- 22. 追加到C中的文本文件
- 23. 如何将文本追加到C++文本文件中?
- 24. 如何将文本追加到黑莓文本文件中
- 25. 解析选项卡unix中的文件标头分隔
- 26. 如何将文本追加到文件的最后15行
- 27. C#如何追加行文本文件结尾的文本?
- 28. PHP如何分割文本中具有相同分隔符的文本?
- 29. 追加到现有的序列文件
- 30. 将制表符添加到具有空列和可变长度列的非分隔文本文件中
如果我运行这个命令它会修改文件?还是应该保存这个命令的输出?因为当我正好粘贴这个命令时,它开始在bash上显示内容 –
@RaminZahedi:参考我的更新,告诉你如何保存到一个新文件 – Inian
其实我不想保存到一个新文件,我想修改这个文件。如果第一个命令只是修改输入文件,为什么它会将内容输出到shell? –