如何使用“tr”替换数字中的数字

时间:2013-08-10 16:48:07

标签: bash replace digits tr

我的输入文件包含一系列用于例如

的数字的命令
13287
13288
13289

我想在所有文件中输出以下内容。

13281
13282
13283

我使用脚本文件中保存的以下命令,因为我在脚本文件中将前四位数作为参数传递。

#!/bin/bash
cat $1_final.txt | tr "$17" "$11" > $1.tmp

而不是所需的输出我得到以下输出。我再次检查了传递它的参数1328否则它将无法获取该文件,因为目录中的文件是1328_final.txt

13221

我在做错了什么?

1 个答案:

答案 0 :(得分:1)

tr的第一个参数是一个 set 字符,它将被第二个arg中的相应字母全部替换,另一个 set 字符。

从每一行中减去6可以通过多种方式完成:

while read num; do echo $((num-6)); done < file
awk '{print $1 - 6}' file
sed 's/$/ - 6/' file | bc
sed 's/$/ 6 - p/' file | dc