【发布时间】:2014-02-22 14:04:39
【问题描述】:
我有一个如下所示的输入文件 (input.txt):
id01 90 5
id01 80 4
id01 79 3
id13 95 5
id01 77 3
id01 85 4
id15 92 5
id17 99 5
id18 65 2
id19 72 3
我想将文件输出为 output.txt:
1 90 5
1 80 4
1 79 3
13 95 5
1 77 3
1 85 4
15 92 5
17 99 5
18 65 2
19 72 3
我进行了搜索,并且能够找到一些单独工作的代码示例(比如只是子字符串部分,或者只是 if 部分)但是当我把整个东西放在一起时,我遇到了语法错误。我在 ssh 环境中执行此操作,我发现 sh 和 bash 之间的语法略有不同。以下是我能够想出但给我语法错误的内容:
awk -F $'\t' 'BEGIN {OFS = FS} { num = substr($1, 3, 1) if (num == "0") num2 = substr($1,4,1) else num2= substr($1,3,2) {print num2, $2, $3 } }' input.txt > output.txt
我将不胜感激。
谢谢!
【问题讨论】:
-
有些地方你把
id01改成1,其他改成01,对吗? -
不,抱歉,我更新了输入文件。它应该只有 1 而没有开头的 0
标签: if-statement awk sh substr