Cod*_*irl 0 regex awk sed find
我有很多括号的文本文件如下:
Name:[Sara,Jane,John]
FamilyName: [Alexandr,Walter,Waze]
Number: [21][44]
Run Code Online (Sandbox Code Playgroud)
我只想删除 Number 中的 ][ 并使文件如下所示:
Name:[Sara,Jane,John]
FamilyName: [Alexandr,Walter,Waze]
Number: [2144]
Run Code Online (Sandbox Code Playgroud)
下面的代码删除所有括号并且无法正常工作,我真的可以帮助我修改此代码吗?
find . -name "*.txt" |xargs sed -i.bak -e 's/[][]//g;' '{}'
Run Code Online (Sandbox Code Playgroud)
最好的问候,萨拉
$ sed '/Number/ s/]\[//' ip.txt
Name:[Sara,Jane,John]
FamilyName: [Alexandr,Walter,Waze]
Number: [2144]
Run Code Online (Sandbox Code Playgroud)
/Number/ 匹配行包含 Number
s/]\[//将删除第一次出现][[ 需要转义以匹配它的字面意思[][]将匹配]或[字符一次。使用g标志将删除所有方括号。在这个例子中,因为你要匹配你不应该使用字符类],并[在那个特定的顺序。
再举一个例子,要删除foo,你需要使用s/foo//而不是s/[foo]//。
您能否仅根据您显示的示例尝试以下操作。
awk '/Number/{gsub(/]\[/,"")} 1' Input_file
Run Code Online (Sandbox Code Playgroud)
说明: /Number/正在Number当前行中查找字符串,如果找到;然后使用gsub全局替换][为 NULL。1将打印当前行。
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |