use*_*129 8 sed centos string replace
我一直被这个看似容易解决的问题难住了……好吧,有一段时间了。
这是我需要编辑的文件的示例输出:
$cat file
George Washington
Geneva Convention
123,281,029 USD
342,019,929 EUR
Run Code Online (Sandbox Code Playgroud)
我需要删除“乔治华盛顿”和“日内瓦公约”之间的空格,而不是“123,281,029 美元”或“342,019,929 欧元”之间的空格。
本质上,我的目标是仅在该行中没有数字时才删除该行中单词之间的空格。
我试图通过 编辑文件grep -v [0-9] $file | sed 's/ //',但唯一可行的方法是我输出到另一个文件,但这意味着从旧文件中排除所有带有数字的行到新文件,这不是我需要的。
我用 grep 尝试了一些非常荒谬的循环,sed但似乎没有任何效果。
同样,这里是文件的示例输出:
$cat file
George Washington
Geneva Convention
123,281,029 USD
342,019,929 EUR
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出:
$cat file
GeorgeWashington
GenevaConvention
123,281,029 USD
342,019,929 EUR
Run Code Online (Sandbox Code Playgroud)
dev*_*ull 15
使用sed:
sed '/[0-9]/!s/ //g' filename
Run Code Online (Sandbox Code Playgroud)
这将删除所有不包含数字的行上的空格。
使用awk:
awk '!/[0-9]/{gsub(" ", "", $0)};1' filename
Run Code Online (Sandbox Code Playgroud)
仅删除前两个单词之间的空格(此处使用 GNU sedfor -r,-E而在 BSD 上使用):
sed -r '/[0-9]/!s/([^ ]+) ([^ ]+)/\1\2/' filename
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |