:grepの使い方(quickfixリストの移動方法など)についてメモ
vimの内部で使用できる:grepコマンド。
:grepコマンドを使う事で、わざわざvimを中断または抜けてunixコマンドのgrepを使い、またfgで戻るなどをしなくてすむようになる
:grepの検索結果はquickfixリストというものを使うため、検索した結果をquickfixリストから辿る方法等をメモしておく
:grepの使い方
使い方:
:grep [検索文字] [検索ファイル]
例)「test」という文字列をカレントディレクトリのファイル全てから検索
:grep test *
※シェルで[ grep -n test * ] を実行したのと同じになる。-nは行番号を表示。
検索結果の辿り方
:grepで検索すると、検索に引っかかる最初の結果にカーソルが移動する。
検索結果が複数あった場合に、次に移動、前に戻る、結果一覧、指定して移動などを行う場合のコマンド一覧は下記の通り。
:cnext[cn] 次の要素にジャンプ :cprev[cp] 前の要素にジャンプ :cfirst 最初の要素にジャンプ :clast 最後の要素にジャンプ :cnfile 次のファイルの最初の要素にジャンプ :cpfile 前のファイルの最後の要素にジャンプ :cc N N番目の要素にジャンプ :copen quickfix ウィンドウをオープン :cclose quickfix ウィンドウをクローズ
※プレフィックスにcを付けると覚える
bashでsplitする方法をメモ
シェルを使って区切り文字で分割する方法を忘れないようにメモ
分割
シェルでは専用の分割変数が用意されている。
IFS変数に区切り文字をセットしsetコマンドで分割が可能
#!/bin/bash TEXT='test1,test2,test3' IFS=',' set -- $TEXT
上記実行でカンマ[,]区切りで分割される
取得する方法は$に続きインデックス番号(1から始まる)で取得可能
echo $1 echo $2 echo $3
標準出力と標準エラー出力についてメモ
毎回調べ直すことになっているので、メモメモ。さらに調べるのにまとまったサイトがなくて1つ1つ調べるはめになるので。まとめ
シェルによって違いがあるため今回はbashに限る
前提知識
【知識0】
unixコマンドは左から右に処理される。これは絶対
【知識1】
(標準入力 : 0)
標準出力 : 1 ※画面に出力される
標準エラー出力 : 2 ※画面に出力される
【知識2】
0,1,2はファイルディスクリプタと呼ぶ
【知識3】
「>」リダイレクト
シェルの結果を出力する場所を指定可能
command ファイル・ディスクリプタ> 出力先
※commandは何らかのコマンドかshファイルとしている
【知識4】
出力先などを特定のファイルディスクリプタに送りたい場合は「&ファイル・ディスクリプタ」とする
echo "standard output" >&2
【知識5】
/dev/nullはunixのスペシャルファイルで空ファイルの事
例えば下記はhoge.txtファイルを空にする
cat /dev/null > hoge.txt
標準出力とは
単純に画面に出力する文字列のこと(実行結果)
#!/bin/bash echo 'standard output'
標準エラー出力とは
シェルで実行時に発生したエラー・メッセージのこと(実行した結果コマンドエラーとなった出力)
標準出力ではなく標準エラー出力として出力する
#!/bin/bash echo 'standard error output' 1>&2
標準エラー出力のみ出力する
標準出力と標準エラー出力が表示される場合に標準エラー出力のみを表示する
#!/bin/bash command > /dev/null
※commandは何らかのコマンドかshファイルとしている
標準出力も標準エラー出力も出力しない
標準出力と標準エラー出力が表示される場合に標準エラー出力のみを出力する
#!/bin/bash command > /dev/null 2>&1
※commandは何らかのコマンドかshファイルとしている
1>&2
1の出力先を2の出力先にマージする ではなく 1の出力先を2の出力先と同じものに設定する ということらしい
「x>&y」は「x の出力先をyの出力先と同じものに設定する」が正しい
実践
■リダイレクトなしの場合
#!/bin/bash command
※commandは何らかのコマンドかshファイルとしている
標準出力 : 画面
標準エラー出力 : 画面
■標準出力のみファイルにリダイレクトする場合
#!/bin/bash command 1>file
※commandは何らかのコマンドかshファイルとしている
標準出力 : file
標準エラー出力 : 画面
■標準出力と標準エラー出力をファイルにリダイレクトする場合
#!/bin/bash command 1>file 2>&1
※commandは何らかのコマンドかshファイルとしている
標準出力 : file
標準エラー出力 : file
これはunixコマンドは左から右に処理されるため、まずは1>fileから処理される
標準出力 : file
標準エラー出力 : 画面
そして2>&1が処理されるため2の出力先を1の出力先と同じに設定したため
標準出力 : file
標準エラー出力 : file
このようになる
ここら辺を追って理解できれば知識として問題なしとしておこう
antでビルドをしたときにでたエラーについてメモ
antを使用してビルドをしてみるとデバッグ版はうまく生成されるが、
リリース版が「Cannot recover key」エラーで改善されなかったため、忘れないようにメモ。
エラーまでの手順
1.keystoreファイルを作成する
keytool -genkey -v -keystore ~/test.keystore -alias test -validity 10000
※組織名等指示に従いすべて入力するパスワードはキーストア、エイリアス共に「password」として設定しておく
2.ant.propertiesファイルへ下記を記載
key.store=test.keystore key.store.password=password key.alias=test key.alias.password=password
3.ant release コマンド実行でエラー
BUILD FAILED android-sdks/tools/ant/build.xml:1139: The following error occurred while executing this line: android-sdks/tools/ant/build.xml:1151: Cannot recover key
ここでエラーがでてしまう
エラー改善
build.xmlで起きる「Cannot recover key」はant.propertiesの設定が間違えている場合に起きる
つまりパスワードあたりが間違えているはず。
ただ今回の原因は半角スペースが入っていた事が原因だった・・・
良くあるミスだけどまた起きたらこわいので一応メモ。。。
Android開発のgitignoreついてメモ
.gitignoreの設定をすぐに移行できるように残しておく
※環境はMAC OS でも Windowsでも不要なものは排除しておく
.gitignore
# Mac不要ファイル .DS_Store # Windows不要ファイル Thumbs.db # Java class files *.class # built application files *.apk *.ap_ # files for the dex VM *.dex # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # eclipse settings .classpath .project .settings/
.gitignoreをプロジェクトへ反映
.gitignoreはアカウント直下に設定しておく事とする
git config --global core.excludesfile $HOME/.gitignore
実機デバッグでdata/dataの中身を確認する手順をメモ
エミュレータの場合はDDMSで確認できるが実機の場合確認する事が出来ないので方法をメモ
※端末によりアクセスできない端末もある
android付属のshellを使用する
•接続
adb shell
•パッケージフォルダの中身にアクセス
run-as [パッケージディレクトリ指定]
上記の実行でディレクトリを確認できる。
あとは通常のshell同様にlsコマンドでディレクトリ中身確認、cdコマンドで移動が可能
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年6月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ