ファイル数が.c
で、printf
の行を探したいのですが、それらの行には//
を追加してコードをコメントアウトします。私は、Pythonを使用して各ファイルを読み込み、変換を行い、変換されたテキストを書き戻すことができますが、それは複雑すぎます。他に簡単な方法はありますか?私はsed
とawk
のようなものを考えましたが、式を書く方法がわからない、またはsed
/awk
を使ってこのタスクを完了することができるかどうかはわかりません。テキストファイルの特定の行を見つけて、いくつかの操作を行うにはどうすればよいですか?
答えて
awk。そこにはサンプルデータがなかったと私は周りに何の.cファイルがなかったように、それは未テストです:
$ awk '/printf/ { sub(/^/,"//") } 1' *.c
を説明:レコードの
/printf/
をprintf
でそれらにsub(/^/,"//")
を記録//
の先頭に追加します1
暗黙印刷
この解決法は、いくつかのファイルを処理するのに少し問題があるかもしれない出力をstdoutに出力します。それに対処する1つの方法は、Gnu awk v。4.1.0以上とinplace edit:gawk -i inplace
を使用することです。 もう1つの方法は、暗黙的な印刷を{ print > "edited-" FILENAME }
に変更して、編集した各ファイルを新しいファイル(たとえばfile.c
〜edited-file.c
)に印刷するなど、他のファイルに出力することです。率直に言って、私は@ satのsed
解決策を自分で使っています。 sed
で
:
インプレース編集のために@SLePort、sed 's~.*printf~//&~' *.c
使用-i
によって推奨
sed '/printf/s~^~//~g' *.c
。
正確printf
をマッチングするための別の方法(printf
と仮定すると、常に改行で起動):ed
、UNIX
-days(ポータブル、POSIX
互換)と行うためのループから利用可能な標準エディタを使用して
sed 's~^\([\t ]*\)\(printf\)~\1//\2~g' file
またはおそらく 'sed '〜* printf〜//&〜''。そして、私は 'g'修飾子がここで有用であるかどうか分からない。 – SLePort
イン場所の交換、
for i in *.c; do
printf '%s\n' ",g/printf/ s/^/\/\//" w q | ed -s -- "$i"
done
で、
,g/printf/ s/^/\/\//
,g/printf/
すべての行にprintf
とs/^/\/\//
を含む行には、これらの行に単語//
が追加されます。その後、wq
はファイルを書き込み、その後にそれを閉じます。
いいえ、それはex
エディタを使用して
for i in *.c; do printf '%s\n' ",g/printf/ s/^/\/\//" w q | ed -s -- "$i"; done
(または)、などVim
for i in *.c; do printf '%s\n' "%g/printf/ s/^/\/\//" w q | ex -s "$i"; done
_file_ ':)'を編集して_ _ _ _ _ _ _ _ _ _ _ _ _エディタ_を使用してくれてありがとうございました。 –
スニフ、それらは本当に良いolの日だった。 ++ –
sed '/printf/ s/^/\/\//' filename
- 1. gridviewの特定の行の値を見つけるにはどうすればよいですか?
- 2. 特定のインデックスを持つNSTableViewの行オブジェクトを特定するにはどうすればよいですか?
- 3. Tagプロパティで特定の値を持つTreeViewItemを見つけるにはどうすればいいですか
- 4. 2つのCSVファイルで同様の行を見つけるにはどうすればよいですか?
- 5. 特定の行をテキストファイルの行番号で置き換えるにはどうすればよいですか?
- 6. コードの行全体で特定の操作を繰り返すにはどうすればよいですか?
- 7. IE11 Dev Toolsで特定のファイルを見つけてデバッグするにはどうすればよいですか?
- 8. いくつかの値を含むセルを見つけるにはどうすればよいですか?
- 9. javaのjar/zipファイルから特定のディレクトリを見つけるにはどうすればよいですか?
- 10. JNAを使用して特定のプロセスを見つけるにはどうすればよいですか?
- 11. Pythonを使用して特定のファイルを見つけるにはどうすればよいですか?
- 12. 式を見つけて特定のテキストに置き換えるにはどうすればよいですか?
- 13. 特定の値に近い値を見つけるにはどうすればよいですか?
- 14. 私はいくつかの特定の機能を持つCRMを見つけようとしています
- 15. いくつかの機能を失うことなくAngular 2プロジェクト内でDOM操作を実際に行うにはどうすればよいですか?
- 16. node.jsの大きなオブジェクトで特定の値を見つけるにはどうすればよいですか?
- 17. 特定の状況で配列内の値を見つけるにはどうすればよいですか?
- 18. Jadeのデータ配列内の特定のアイテムを見つけるにはどうすればよいですか?
- 19. tarballのグループ内の特定のファイルを見つけるにはどうすればよいですか?
- 20. qml内のListModel内の特定のListElementを見つけるにはどうすればよいですか?
- 21. 空の行列や空の列や行を持つ行列を操作しないようにするにはどうすればよいですか?
- 22. 各スレッドが実行されているプロセッサを見つけるにはどうすればよいですか?
- 23. テキストボックスのテキストファイルから特定のテキスト行を表示するにはどうすればよいですか?
- 24. Reactjのいくつかのフォームフィールドを操作するにはどうすればよいですか?
- 25. 特定のアドレスのptepを見つけるにはどうすればよいですか?
- 26. 特定のデータベースの所有者を見つけるにはどうすればよいですか?
- 27. ビジュアルベーシックのテキストファイルの特定の行にテキストを追加するにはどうすればよいですか?
- 28. いくつかの行をすばやくテストするにはどうすればよいですか?
- 29. 分までのdatetimeの最新の行を見つけるにはどうすればよいですか?
- 30. 1つのデータフレームの行の違いをどのように見つけるか?
のコマンドラインと同等の単一の行のコマンドラインに優しいバージョンを使用しますあなたのコードが書かれている特定のC変種のパーサーなしで、この仕事を頑強にすることはできません。入力ファイルの内容によっては、投稿された回答が失敗します。 –