先日、「phpの開始タグの前に余計な文字を入れてしまうことが多いので何とかしたい」
という話を聞き、
下記のようなコマンドで取り除けばいいという提案をしました。
sed -i -e 's/.*<?php/<?php/g' hoge.php
その場合、以下のようなファイルには効果がありました。
実行前
// php開始タグの前にスペース2文字がある。 <?php class Hoge{ }
実行後
<?php class Hoge{ }
実行前の際に含まれていた、php開始タグの前のスペースが削除され、
開始タグの余計な文字がなくなっております。
ですが、以下のような改行を含んだファイルには効果がありませんでした。
実行前
// php開始タグの前に改行、そしてスペース2文字がある。 <?php class Hoge{ }
実行後
// コマンドを実行すると、改行は削除されない <?php class Hoge{ }
php開始タグの前に改行文字を含めた場合、その改行文字を削除できず、
php開始タグの前に
余計な文字が含んだままになっております。
このような改行を含んだものでも開始タグの前の余計な文字を
削除できるようなコマンドの書き方が思いつかなかったので、
よろしければご教示を頂きたく思います。
よろしくお願いします。
手元で確認する限り、上手く行かなかった場合の方でも改行は削除されませんがスペース2文字は削除されました。そちらでお使いの環境は何になりますでしょうか。挙動が異なるようなので確認させて下さい。また、質問の意図として<?phpより前の文字は改行だろうがスペースだろうがその他の文字だろうがすべて削除したい、というものでよろしいでしょうか。
確認ありがとうございます。環境につきましては、OSはWindow10でcygwinで実行しております。挙動につきましては、質問文が間違っており、スペースは消去される挙動となりますので修正させていただきます。間違った質問をのせてしまい申し訳ありません。意図に関してもyunano様のおっしゃる通りのものです。
回答3件
あなたの回答
tips
プレビュー