如果我有一个简单的文本文件,包含所有负值的数字,我如何使所有这些值都为正?
例如,如果test.txt具有以下值:
-4
-5
-6
如何使其值为正值?
4
5
6
答案 0 :(得分:4)
tr -d '-' < file
......................
答案 1 :(得分:2)
所以其中一个MATH规则如果我们将-1乘以任何数字,它将被改为它自己的正数(如果它已经是负数),所以类似地我们可以在这里做如下。
awk '{$0=$0 * -1} 1' Input_file
希望这会对你有所帮助。
所以,让我们说你的Input_fie的值为负值和正值,如下所示。
cat file1
-4
-5
-6
7
然后我们可以使用以下代码来避免使所有内容都为负(特别是那些值已经为正值)。
awk '{$0=$0<0?$0 * -1:$0} 1' Input_file
希望这会对你有所帮助。
答案 2 :(得分:1)
如果您的意图是仅在数字为负时转换为正数:
while read -r number; do
[[ number -lt 0 ]] && number=$((-1 * number))
echo $number
done < test.txt
答案 3 :(得分:0)
似乎你不想做任何数学运算,只需删除所有减号。在这种情况下,
while read line; do echo ${line//-/}; done <test.txt
在不调用外部程序的情况下完成工作。它也适用于每行有多个数字的情况。
答案 4 :(得分:0)
好的,我做了以下假设:
#!/bin/bash
while read a
do
echo -1*$a | bc
done <test.txt