【发布时间】:2023-03-19 01:44:01
【问题描述】:
这是我的原始文件:
#Game No : 1000693
***** 888poker Hand History for Game 1000693 *****
$1/$2 Blinds No Limit Holdem - *** 18 11 2021 10:41:44
Table DD Poker 9 Max (Real Money)
Seat 7 is the button
Total number of players : 9
Seat 1: Monroe ( $2 )
Seat 2: Mpeti ( $2 )
Seat 3: Bowen ( $2 )
Seat 4: Riccardo ( $2 )
Seat 5: Ramman ( $2 )
Seat 6: Reva ( $2 )
Seat 7: Miklos ( $2 )
Seat 9: Samlet ( $2 )
Seat 10: Geralyn ( $2 )
Hamlet posts small blind [$1]
Geralyn posts big blind [$2]
** Dealing down cards **
Monroe calls [$2]
Mpeti folds
Bowen folds
Riccardo folds
Ramman folds
Reva folds
Miklos calls [$2]
Hamlet folds
** Dealing flop ** [ As, 6s, Ah ]
** Dealing turn ** [ 8s ]
** Dealing river ** [ 4h ]
** Summary **
Monroe shows [ Jh, Td ]
Miklos shows [ Tc, Jc ]
Samlet shows [ Th, 8c ]
Geralyn shows [ Js, Ts ]
Geralyn collected [ $17 ]
对于所有美元值“$X”,我需要用“$X/10”替换它们(Eks. $2/10=0.2) 我可以使用这个管道命令提取美元值并将它们除以 10:
grep -o '\$[[:digit:]]*' dollar.txt | sed 's/[^0-9]//g' | awk '{print $1/10}'
0.1
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.1
0.2
0.2
0.2
如何更改整个原始文件(或创建一个新文件),以便文件的其余部分包含所有“$X”值都替换为“$X/10”?
【问题讨论】:
-
这里根本没有理由使用 sed 或 grep;这段代码可以合理有效地实现为 100% awk……尽管就个人而言,我会在这个代码上联系 Python。
-
(Python 内置的东西,必须在 awk 中手动完成,是一种将用于计算替换值的函数传递给标准库的基于正则表达式的查找的能力- 和替换功能)。