次の文字列があります。
/test/test/ 12 /test/test
私の目標は、これを次のように変更することです。
/test/est/ 12 /test/test
これはコマンドです:
echo "$x" | sed 's@\(/*/\).@\1@g'"
私は今使用していますが、「/」の2番目のインスタンスの代わりにどこにでも適用されます。
答え1
Steeldriverが述べたように、GNU sedを使用すると、どのアイテムを交換する必要があるのかがわかります。たとえば、次のようになります。
echo "/test/test/ 12 /test/test" | sed -n -e 's_/._/_2 p'
この機能が利用できない場合は、次のように書くこともできます。
echo "/test/test/ 12 /test/test" | sed -n -r -e 's_(/[a-z]([a-z]+))\1_\1/\2_ p'
サージ:http://www.grymoire.com/Unix/Sed.html[パターンの一部を保存するには\ 1を使用してください。]
答え2
echo "/test/test/ 12 /test/test" | sed 's/\/test\/t/\/test\//'
答え3
良くて楽です...
sed -n "s/test/est/2p"
- -n 何も印刷しない
- s/代替
- 「テスト」と「est」
- /2 ただし、2番目のインスタンスのみ
- p印刷結果