Bash 在文本文件中创建包含行号的最后一列
我不熟悉使用Mac终端。我需要将一个制表符分隔的列添加到包含3个现有列的文本文件中。这些列看起来非常像这样:Bash 在文本文件中创建包含行号的最后一列,bash,macos,awk,sed,terminal,Bash,Macos,Awk,Sed,Terminal,我不熟悉使用Mac终端。我需要将一个制表符分隔的列添加到包含3个现有列的文本文件中。这些列看起来非常像这样: org1 1-20 1-40 org2 3-35 6-68 org3 16-38 40-16 org1 1-20 1-40 1 org2 3-35 6-68 2 org3 16-38 40-16 3 等等 我需要它们看起来像这样: org1 1-20 1
org1 1-20 1-40
org2 3-35 6-68
org3 16-38 40-16
org1 1-20 1-40 1
org2 3-35 6-68 2
org3 16-38 40-16 3
等等
我需要它们看起来像这样:
org1 1-20 1-40
org2 3-35 6-68
org3 16-38 40-16
org1 1-20 1-40 1
org2 3-35 6-68 2
org3 16-38 40-16 3
等等
如果这个问题已经被讨论过,我深表歉意。类似问题的答案有时非常深奥,不容易翻译成这种特定情况。在awk中<代码>打印记录及其后所需的制表符和行数:
$ awk '{print $0 "\t" NR }' foo
org1 1-20 1-40 1
org2 3-35 6-68 2
org3 16-38 40-16 3
在awk中<代码>打印记录及其后所需的制表符和行数:
$ awk '{print $0 "\t" NR }' foo
org1 1-20 1-40 1
org2 3-35 6-68 2
org3 16-38 40-16 3
您可以在同一文件旁边添加行号()的文件,并删除所有其他列():
$paste infle您可以在同一文件旁边添加行号(),并删除所有其他列():
$paste infle如果要将行号添加到最后一列:
perl -i -npe 's/$/"\t$."/e' file
在哪里
-i
以速度替换文件(如果要将结果打印到标准输出,请删除)李>
-n
使Perl对文件中的每一行应用替换,就像sed一样李>
-p
打印表达式的结果李>
-e
接受Perl表达式李>
s/../../e
将第一部分替换为第二部分(用斜杠分隔),并且e
标志使Perl将替换计算为Perl表达式李>
$
是线锚的末端李>
$。
变量保留当前行的编号
换句话说,该命令将行尾($
)替换为一个选项卡,后跟行号$。
如果要将行号添加到最后一列:
perl -i -npe 's/$/"\t$."/e' file
在哪里
-i
以速度替换文件(如果要将结果打印到标准输出,请删除)李>
-n
使Perl对文件中的每一行应用替换,就像sed一样李>
-p
打印表达式的结果李>
-e
接受Perl表达式李>
s/../../e
将第一部分替换为第二部分(用斜杠分隔),并且e
标志使Perl将替换计算为Perl表达式李>
$
是线锚的末端李>
$。
变量保留当前行的编号
换句话说,该命令用一个制表符替换行尾($
),该制表符后跟行号$。
是否将行号放在最后一列,还是其他内容?在最后一列中,是:)是否要将行号放在最后一列或其他内容中?在最后一列中,选择“是”。)非常感谢你!作为将来的参考,你知道在每个数字前打印一个单词的方法吗?e、 g.“行1、行2、行3等”?只需将“\t”
替换为“\t行”
(未测试)。非常感谢!作为将来的参考,你知道在每个数字前打印一个单词的方法吗?e、 g.“第1行、第2行、第3行等”?只需将“\t”
替换为“\t-line”
(未测试)。