我有以下文件:如何找到一個文本文件中的shell腳本的最大和最小數
T $ 57 ABC字符串(50.00,110.00) T $ 97 XYZ字符串(30.00,-1100.00)
我需要把(50.00,110.00),(30.00,-1100.00)放在新文件中,最後保存變量中的x座標的最大數量和y座標的最小數量。在另一個變量。
感謝
我有以下文件:如何找到一個文本文件中的shell腳本的最大和最小數
T $ 57 ABC字符串(50.00,110.00) T $ 97 XYZ字符串(30.00,-1100.00)
我需要把(50.00,110.00),(30.00,-1100.00)放在新文件中,最後保存變量中的x座標的最大數量和y座標的最小數量。在另一個變量。
感謝
,如下圖所示使用awk
。座標保存到另一個名爲file2
的文件中,並且包含最大值和最小值的變量分別爲maxX
和minY
。
$ cat file
T$57 abc string (50.00,110.00)
T$97 xyz string (30.00,-1100.00)
$ read maxX minY < <(awk -F"[ (,)]+" 'NR==1 { maxX=$4;minY=$5 } {if($4>maxX){maxX=$4} if($5<miny){miny=$5}print "("$4","$5")" > "file2"}END{print maxX" "miny}' file)
$ echo $maxX
50.00
$ echo $minY
-1100.00
$ cat file2
(50.00,110.00)
(30.00,-1100.00)
這裏是一個小的shell腳本:
#!/bin/bash
maxx=0
miny=0
#For everithing between brackets in you file do
for i in `grep -oE '\(([^\(\)]*)\)' file` ; do
echo $i >> newFile
#Getting the differnts values
j=`echo $i | tr -d '[\(][\)]'`
x=`echo $j | cut -d, -f1`
y=`echo $j | cut -d, -f2`
#Putting the max in maxx
if [ $maxx \< $x ] ; then
maxx=$x
fi
#Putting the min in miny
if [ $miny \> $y ] ; then
miny=$y
fi
done
echo $maxx
echo $miny
它的工作原理......非常感謝:) – user1901466
感謝您的幫助:) – user1901466