所以我有以下文件:
Carlton 3053
Carlton North 3054
Docklands 3008
East Melbourne 3002
Flemington 3031
Kensington 3031
Melbourne 3000
Melbourne 3004
North Melbourne 3051
St Kilda East 3183
Run Code Online (Sandbox Code Playgroud)
我想用连字符替换数字前面的最后一个空格,这是我得到的最接近的空格
cat file.txt | sed -r 's/\ /\-/g'
Run Code Online (Sandbox Code Playgroud)
但这会用 - 替换所有空格 - 我希望输出看起来像这样:
Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
那这个呢?
$ sed -r 's/ ([^ ]*)$/-\1/' file
Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183
Run Code Online (Sandbox Code Playgroud)
([^ ]*)$ 捕获空间+"任何不是直到行尾的空间".-\1 打印连字符+捕获的"任何不是直到行尾的空格".你的尝试很接近.您只需要在空间之前捕获所有内容,并在替换中需要反斜杠引用.不知道为什么你逃脱了空间和连字符.
sed -r 's/(.*) /\1-/g' inputfile
Run Code Online (Sandbox Code Playgroud)
为了您的输入,它产生:
Carlton-3053
Carlton North-3054
Docklands-3008
East Melbourne-3002
Flemington-3031
Kensington-3031
Melbourne-3000
Melbourne-3004
North Melbourne-3051
St Kilda East-3183
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17492 次 |
| 最近记录: |