AIX中怎么用sed把某字符转换成换行符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AIX中怎么用sed把某字符转换成换行符相关的知识,希望对你有一定的参考价值。
sed -n 's/aaa/bbb/g' 这是把匹配到的aaa替换成bbb,-n选项不会直接修改源文件。想修改源文件要使用-i选项。这样写:
sed -i 's/aaa/bbb/g' 1.txt 这样就把文件1.txt中所有的aaa都替换成了bbb,后面的g是全局匹配的意思。 参考技术A 拆成2行写echo '1 2' | sed 's/ /\ /'
sed ack 搜索/用字符串替换换行符
【中文标题】sed ack 搜索/用字符串替换换行符【英文标题】:sed ack search / replace line break with string 【发布时间】:2021-06-21 16:08:19 【问题描述】:我查看了一些 SO 线程,但没有一个对我的具体情况有所帮助。
我正在尝试将我从 php 5.6 接管到 php 8.0 的 PHP
应用程序更新为 php 8.0
话虽如此,有很多实例看起来像:
<?
echo ...
function
我需要找到所有<?
后面直接跟一个换行符的情况,并将其替换为<?php(newline)
根据我读过的 SO 帖子 .. 我认为我即将接近以下内容:
find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/\<\?\n/\<\?php\n/g" \;
我想我很接近了.. 但我不明白为什么它不能用<?php\n
替换<?\n
,因为sed
语句在没有换行符的情况下工作。但是根据THIS POST,看起来我做得对。
我做错了什么?
我尝试过的迭代:
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/\<\?\n/\<\?php\n/g" \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<\?\n/<\?php\n/g" \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\n/<?php\n/g" \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\n\r/<?php\n/g" \;
$ find ./ -type f -readable -writable -exec sed -i ":a;N;$!ba;s/<?\r\n/<?php\n/g" \;
【问题讨论】:
【参考方案1】:sed 命令本身可以很简单:
sed -i 's/<?$/<?php/'
将它与 find 结合起来,它可能对你有用。
$
是匹配行尾的锚点,您可以考虑使用^
也将匹配锚点到开头:
s/^<?$/<?php/
【讨论】:
正是我要找的 -->find ./ -type f -readable -writable -exec sed -i 's/^<?$/<?php/' \;
工作.. 谢谢!以上是关于AIX中怎么用sed把某字符转换成换行符的主要内容,如果未能解决你的问题,请参考以下文章