私はどのように私はGREPまたは他のツールを使用してLinuxでこれを達成することができますすべてのコメント"grep"を使ってファイルからコメントを削除するには?
-- Sql comment line
を削除する必要があるSQLファイルを持っていますか?
よろしく、
私はどのように私はGREPまたは他のツールを使用してLinuxでこれを達成することができますすべてのコメント"grep"を使ってファイルからコメントを削除するには?
-- Sql comment line
を削除する必要があるSQLファイルを持っていますか?
よろしく、
grep
ツールは、フィルタの意味を逆に-v
オプションがあります。たとえば:
grep -v pax people
はががpax
が含まれていないことをあなたにpeople
ファイル内のすべての行を提供します。
例です。コメントマーカーの前の空白のみでラインを取り除く
grep -v '^ *-- ' oldfile >newfile
。あなたがsed
のようなものを使用することをやってみたかった場合
select blah blah -- comment here.
:それははしかしような行を変更しません
" --"
からの任意の文字を削除し、それぞれの行を編集し
sed -e 's/ --.*$//' oldfile >newfile
を行末。
あなたが(不自然)のようなリアル SQL文で文字列" --"
を見つけることに注意する必要がある点に注意してください。
select ' -- ' | colm from blah blah blah
あなたはこれらを持っている場合は、ANを使用して作成/オフ方がよいでしょう単純なテキスト修正ツールではなくSQL構文解析ツールです。
運転中sed
のトランスクリプト:grep
については
pax$ echo '
...> this is a line with -- on it.
...> this is not
...> and -- this is again' | sed -e 's/ --.*$//'
this is a line with
this is not
and
:
sed -e "s/(--.*)//" sql.filename
は、シェル上でsed
を使用してみてくださいn sedコマンドを次のように使用してください。sed -i '/\-\-/d' <filename>
なぜ 'g'ですか? '--'の後に*すべて*をマッチさせると、1行に1つのオカレンスしか存在できません。 – Johnsyweb
@Johnsywebはい、そうです。答えを編集しました。 –
あなたがCA:
pax$ echo '
-- this line starts with it.
this line does not
and -- this one is not at the start' | grep -v '^ *-- '
this line does not
and -- this one is not at the start
行の先頭から始まっていないコメントはどうなりますか? –