这是我的原始文件:
#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 ]
Run Code Online (Sandbox Code Playgroud)
对于所有美元值“$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
Run Code Online (Sandbox Code Playgroud)
如何更改整个原始文件(或创建一个新文件),以便文件的其余部分包含在内,同时所有“$X”值都替换为“$X/10”?
如果您可以为此使用perl
,解决方案将尽可能短
perl -i -pe 's{\$(\d+)}{($1/10)}ge' file
Run Code Online (Sandbox Code Playgroud)
请参阅在线演示。细节:
-i
- 内联文件更改选项s{\$(\d+)}{($1/10)}ge
- 一个s
ubstitution 命令,其中 RHS(替换部分)是 Perl 表达式(通过标志启用),匹配符号每一行上出现的e
所有 ( ) ,然后匹配一个或多个数字(捕获到第 1 组,),并将每场比赛替换为第 1 组值除以 10 的结果。g
$
$1
如果您想明确禁止执行浮点值的替换(例如,如$10.500
),您可以替换\$(\d+)
为\$(\d+)(?!\.?\d)
。
归档时间: |
|
查看次数: |
214 次 |
最近记录: |