sed を使用して複数行文字列を別の複数行文字列に置き換える

sed を使用して複数行文字列を別の複数行文字列に置き換える

例えば。入力する:

// copyright

package com.base

import com.base
import com.base
...

"//copyright\n\n^package.*" パターンを別の文字列に置き換えたいと思います。

使ってみよう

sed -e 's/.,^package/$(anotherString)/g' $text 

ベストアンサー1

sedを使う

解決策は次のとおりですsed

$ sed '\|// copyright|,\|^package|{s/^package/Something\nElse/p;d}' file
Something
Else com.base

import com.base
import com.base
...

元の行をすべて削除しますかpackage?その場合は、1つの小さな変更のみが必要です。

$ sed '\|// copyright|,\|^package|{s/^package.*/Something\nElse/p;d}' file
Something
Else

import com.base
import com.base
...

awkを使う

$ awk '/^\/\/ copyright/,/^package/{if (/^package/) print "Something\nElse"; next} 1' file
Something
Else

import com.base
import com.base
...

おすすめ記事