原始文件input_file.txt就像:
A: 46274
B: 43274
C: 47242
我想将所有这些数字减去一定数量,比如40000,然后将结果输出到另一个文件output_file.txt,如:
6274
3274
7242
任何人都可以帮我吗?非常感谢你。
答案 0 :(得分:5)
您可以使用awk
来执行此操作。例如:
$ cat in.txt
A: 46274
B: 43274
C: 47242
$ awk '{ print $2-74 }' in.txt
46200
43200
47168
$
如果只是为了实验而你想用bash本身而不是像awk
这样的工具来做,你也可以这样做:
$ while read a b; do echo $(($b - 74)); done <./in.txt
46200
43200
47168
答案 1 :(得分:0)
<强> INPUT.TXT 强>
A: 46274
B: 43274
C: 47242
Unix解决方案
$> awk -F " " '{print $2-40000}' Input.txt > Output.txt
Perl解决方案
#!/usr/bin/perl
my @a=`cat /home/Input.txt`;
foreach my $b (@a)
{
chomp($b);
my ($c1,$c) = split (':',$b);
chomp($c);
$d= $c - 40000;
print "$d\n";
}
执行并将脚本的输出重定向到Output.txt
<强> Output.txt的强>
6274
3274
7242