回答編集履歴
2
追記
test
CHANGED
@@ -11,3 +11,23 @@
|
|
11
11
|
echo "$OUTPUT" # (true_2347087436712_490.00_150.00_640.00_0315764274_Biabia Kudi_Oto Obong_12102022_1)
|
12
12
|
```
|
13
13
|
|
14
|
+
### 追記
|
15
|
+
|
16
|
+
数値としての合計は bc を使い、sed は`-e` オプションで使って `-E` オプションを使わないことにし、その替わり cutコマンドを使った方法です。
|
17
|
+
|
18
|
+
```shell
|
19
|
+
#!/usr/bin/env bash
|
20
|
+
|
21
|
+
INPUT='(true_2347087436712_490.00_150.00_0.00_0315764274_Biabia Kudi_Oto Obong_12102022_1)'
|
22
|
+
|
23
|
+
HEAD=$(echo $INPUT | cut -d_ -f1,2,3,4) # (true_2347087436712_490.00_150.00
|
24
|
+
TAIL=$(echo $INPUT | cut -d_ -f6,7,8,9,10) # 0315764274_Biabia Kudi_Oto Obong_12102022_1)
|
25
|
+
FORMULA=$(echo $INPUT | cut -d_ -f3,4 | sed -e 's/_/+/') # 490.00+150.00
|
26
|
+
SUM=$(echo $FORMULA | bc) # 640.00
|
27
|
+
|
28
|
+
RESULT="${HEAD}_${SUM}_${TAIL}"
|
29
|
+
|
30
|
+
echo $RESULT # (true_2347087436712_490.00_150.00_640.00_0315764274_Biabia Kudi_Oto Obong_12102022_1)
|
31
|
+
|
32
|
+
```
|
33
|
+
|
1
不要な文字、空行を削除
test
CHANGED
@@ -4,12 +4,10 @@
|
|
4
4
|
|
5
5
|
INPUT='(true_2347087436712_490.00_150.00_0.00_0315764274_Biabia Kudi_Oto Obong_12102022_1)'
|
6
6
|
|
7
|
-
FORMULA=$(sed -E "s/^\(true_[0-9]+_([0-9.]+)_([0-9.]+)_.*$/\1+\2/" <<< "$INPUT") # 490.00+150.00
|
7
|
+
FORMULA=$(sed -E "s/^\(true_[0-9]+_([0-9.]+)_([0-9.]+)_.*$/\1+\2/" <<< "$INPUT") # 490.00+150.00
|
8
8
|
|
9
9
|
OUTPUT=$(sed -E "s/_0\.00_/_$(bc <<< "$FORMULA")_/" <<< "$INPUT")
|
10
10
|
|
11
11
|
echo "$OUTPUT" # (true_2347087436712_490.00_150.00_640.00_0315764274_Biabia Kudi_Oto Obong_12102022_1)
|
12
|
-
|
13
|
-
|
14
12
|
```
|
15
13
|
|