我有一个输入文件(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
我进行了搜索,并且能够找到一些单独工作的代码示例(就像子串部分一样,或者只是部分)但是当我将整个事物放在一起时,我会遇到语法错误。我在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
我将非常感谢您对此提供任何帮助。
谢谢!
答案 0 :(得分:1)
有些人喜欢awk
awk '{sub(/id/,"",$1);$1=$1+0}8' OFS="\t"
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
更新以摆脱领先的0
答案 1 :(得分:1)
试试这个sed
,
sed 's/id//g' file.txt
要摆脱前导零,
sed 's/id0*//g' file.txt