LoginSignup
0
0

More than 1 year has passed since last update.

テキスト内一部の大文字と小文字をぱぱっと変換しよう

Posted at

初めに

テキスト内の一部の文字を一気に大文字(uppercase)or小文字(lowercase)にしたいとき、ありますよね。
筆者の場合、研究活動でプログラムを使っていくと、「なんで小文字になっちゃってんの???」ってなることがあるので、変換をよく使います(小文字であることに意味がある場合があるので注意は必要ですが・・・)。

今回は以下のテキストファイル中の一部分の大きさを変換させます(before.txtからafter.txt)にします

before.txt
One-line
aaaaccccgcttt
Two-line
ggttacaaagtca

2行目と4行目を小文字から大文字に変換

after.txt
One-line
AAAACCCCGCTTT
Two-line
GGTTACAAAGTCA

目次

  • awkを使おう
  • vimで編集しよう
  • その他変換コマンド

awkを使おう

touppertolowerで一括変換だ!!

これもおすすめです。ifと組み合わせれば任意行を変換できます。こちらの方法は、何もゲノムファイルに限らず使えますね。小文字にしたければtouppertolowerにしようね。

awk_de_henkan.txt
awk '{if($0 !~ ">"){print toupper($0)}}' before.txt > after.txt
# ifで1行目と3行目を除いて、大文字に変換!

なんでおすすめなの?

行を選択的に処理できるのがawkの利点だからです。
if文を駆使すれば加工したい行をうまく選択できますね。
条件文については別の機会にまとめます。

vimで編集しよう

マニュアルで変換していこう

変換部分が少ない場合はこの方法も良いです。

  1. shift+Vで行選択
  2. Uで大文字化
    download.gif

小文字化する場合はuを使いましょうね。

便利だけど・・・

ファイル開いて・・・選択して・・・ってめんどくさいですよね。
また、マニュアル操作なのでミスの可能性が孕んでます。
変換対象が多かったり、読者の方が私みたいにテキトー(笑)な人は、awk使いこなしていきやしょうね。

その他変換コマンド

tr

ファイル内のすべての文字を変換するのに使えます。コマンドは以下の通りです。

#小文字to大文字
tr a-z A-Z < file1 > file2 
#大文字to小文字
tr A-Z a-z < file1 > file2

選択的に加工できないですけどね、方法があるのでしょうか

終わりに

この中だとawkが便利ですね。何より応用が効くので。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0