我使用这个sed命令来删除逗号后面的空格。
sed -e 's/,\s\+/,/g' example.txt
我怎么能改变它,它将只在特定的行号之间进行修改。(e.g.在第二和第三行之间)。
zqry0prt1#
用途:
sed '2,3s/,\s\+/,/g' example.txt
这将仅在编号为2到3(含)的行中应用正则表达式/,\s\+/,并将匹配替换为,。
/,\s\+/
,
ecbunoof2#
由于OSX(BSD sed)与Linux(GNU)sed存在一些语法差异,因此我想从我的一些来之不易的注解中添加以下内容:OSX(BSD)SED查找/替换同一文件中的(地址)块(起点和终点模式(/../)或行号)(通过& via &通过&第4.20节here):语法:
$ sed '/start_pattern/,/end_pattern/ [operations]' [target filename]
标准查找/替换示例:
$ sed -i '' '2,3 s/,\s\+/,/g' example.txt $ sed -i '' '/DOCTYPE/,/body/ s/,\s\+/,/g' example.txt
使用复杂运算符和分组查找/替换示例(由于使用了标准输入流,因此无法在没有分组语法的情况下进行操作)。分组中的所有语句必须位于单独的行中,或使用分号分隔:
复杂运算符示例(将删除包含匹配项的整行):
$ sed -i '' '2,3 {/pattern/d;}' example.txt
多文件查找+ sed:
$ find ./ -type f -name '*.html' | xargs sed -i '' '/<head>/,/<\/head>/ {/pattern/d; /pattern2/d;}'
希望这对某人有帮助!
yrefmtwq3#
sed -e '2,3!b;s/,\s\+/,/g' example.txt
如果您以后希望添加更多命令来处理所需的行,则此版本非常有用。
3条答案
按热度按时间zqry0prt1#
用途:
这将仅在编号为2到3(含)的行中应用正则表达式
/,\s\+/
,并将匹配替换为,
。ecbunoof2#
由于OSX(BSD sed)与Linux(GNU)sed存在一些语法差异,因此我想从我的一些来之不易的注解中添加以下内容:
OSX(BSD)SED查找/替换同一文件中的(地址)块(起点和终点模式(/../)或行号)(通过& via &通过&第4.20节here):
语法:
标准查找/替换示例:
使用复杂运算符和分组查找/替换示例(由于使用了标准输入流,因此无法在没有分组语法的情况下进行操作)。分组中的所有语句必须位于单独的行中,或使用分号分隔:
复杂运算符示例(将删除包含匹配项的整行):
多文件查找+ sed:
希望这对某人有帮助!
yrefmtwq3#
如果您以后希望添加更多命令来处理所需的行,则此版本非常有用。