for DD in $(cat your_input_file|tr " " ",")
do
for x in $(echo $DD | tr "," " ")
do
let m=$x-1
echo -n " $m" >>your_output_file
done
echo >>your_output_file
done
but @Avinash Raj's suggestion is better
1
A perl 版本:
perl -pe 's/(\d+)/$1-1/eg' file
1 2 3 4 5 6
0 2 4
Explanation:
-p 假设 while (<>) { ... } 循环程序并打印线,如sed .
-e 执行代码
s/(\d+)/$1-1/eg 是一个简单的替换,我们将每个数字分组并对其执行减法 . e flag评估替换 . g flag执行全局替换 .
4 回答
您可以通过将文件的每一行读入数组来在Bash循环中执行此操作 .
你可以尝试这个awk命令,
Example:
but @Avinash Raj's suggestion is better
A
perl
版本:Explanation:
-p
假设while (<>) { ... }
循环程序并打印线,如sed .-e
执行代码s/(\d+)/$1-1/eg
是一个简单的替换,我们将每个数字分组并对其执行减法 .e
flag评估替换 .g
flag执行全局替换 .