lessコマンドで特定の文字列をフィルタリングする方法

April 18,2018 12:03 AM
Category:[Linux]
Tag:[less, Linux]
Permalink

lessコマンドで特定の文字列をフィルタリングする方法を紹介します。

1.問題点

あるシステムで出力されるログを、"less +F"で動的に出力しているのですが、閲覧不要なログが大量に出力され、本当に見たい内容のログが見れません。

下記のようにすると、ログが動的に出力されなくなります。

% grep -v 除外文字列 | less +F

ということで、lessコマンドで特定の文字列をフィルタリングする方法を紹介します。

2.lessコマンドで特定の文字列をフィルタリングする

lessコマンドで特定の文字列をフィルタリングするには、まずlessコマンドでログを表示します。

このとき、"+F"オプションは付与せずに表示させてください。

次に"&"を押下。これで下記のように"&/"が表示されます。

&/表示

さらに"!"を押下すると"Non-match &/"という表示になります。

Non-match &/

除外したい文字を設定。ここでは"foo"と入力しています。

除外したい文字

リターンすれば"& :"という表示になり、フィルタリングした状態になります。

& :

さらに"Shift+f"を押下すれば、設定した文字にマッチしない行だけを動的に表示します。

設定した文字にマッチしない行を動的に表示

"!"を入力せずに文字列を設定すれば、設定した文字が存在する行だけをフィルタリングしてくれます。

Comments [0] | Trackbacks [0]

svnでコミットログを修正する方法

April 13,2018 12:03 AM
Category:[Linux]
Tag:[Linux, SVN]
Permalink

svnでコミットログを修正する方法を紹介します。

1.問題点

svnでコミットしたファイルのコミットログを修正したいので、ネットで調べて、TortoiseSVNを使って下記の手順で変更しようとしました。

該当ファイルを右クリックして、「Show log」を選択。

(クリックで拡大、以下同様)
Show log

変更したいリビジョンを右クリックして「Edit log message」をクリック。

Edit log message

メッセージを修正して「OK」をクリック。

メッセージを修正

が、「Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook.」というエラーが表示されて、メッセージを修正することができません。

Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook.

ということでsvnでコミットログを修正する方法を紹介します。

2.svnでコミットログを修正する

1項のエラーメッセージ「ask the administrator to create a pre-revprop-change hook.」は「管理者にpre-revprop-changeフックを作成するよう依頼」とあるので、このフックを作成します。

svnリポジトリにhooksというディレクトリがあるのでそこに移動。リポジトリ名がtestであれば"/svn/test/hooks"になります。

hooksには下記のファイルがあります。

-rwxrwx--- 1 root apache 1977  8月 28 16:58 2017 post-commit.tmpl
-rwxrwx--- 1 root apache 1638  8月 28 16:58 2017 post-lock.tmpl
-rwxrwx--- 1 root apache 2289  8月 28 16:58 2017 post-revprop-change.tmpl
-rwxrwx--- 1 root apache 1567  8月 28 16:58 2017 post-unlock.tmpl
-rwxrwx--- 1 root apache 3426  8月 28 16:58 2017 pre-commit.tmpl
-rwxrwx--- 1 root apache 2410  8月 28 16:58 2017 pre-lock.tmpl
-rwxrwx--- 1 root apache 2786  8月 28 16:58 2017 pre-revprop-change.tmpl
-rwxrwx--- 1 root apache 2100  8月 28 16:58 2017 pre-unlock.tmpl
-rwxrwx--- 1 root apache 2780  8月 28 16:58 2017 start-commit.tmpl

この中にあるpre-revprop-change.tmplは次のようなシェルになっています。

#!/bin/sh
 
# PRE-REVPROP-CHANGE HOOK
  :
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
 
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
 
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
 
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

各変数は下記に対応しています。

  • REPOS:このリポジトリへのパス
  • REV:リビジョン
  • USER:プロパティを調整した人のユーザ名
  • PROPNAME:リビジョンに設定されているプロパティ
  • ACTION:'A'dded/'M'odified/'D'eleted

このファイルをコピーして、"pre-revprop-change"というフック用ファイルを同じディレクトリに作成し、実行権を与えます。

# cp pre-revprop-change.tmpl pre-revprop-change
# chmod 755 pre-revprop-change
# ls -l
合計 48
-rwxrwx--- 1 root apache 1977  8月 28 16:58 2017 post-commit.tmpl
-rwxrwx--- 1 root apache 1638  8月 28 16:58 2017 post-lock.tmpl
-rwxrwx--- 1 root apache 2289  8月 28 16:58 2017 post-revprop-change.tmpl
-rwxrwx--- 1 root apache 1567  8月 28 16:58 2017 post-unlock.tmpl
-rwxrwx--- 1 root apache 3426  8月 28 16:58 2017 pre-commit.tmpl
-rwxrwx--- 1 root apache 2410  8月 28 16:58 2017 pre-lock.tmpl
-rwxr-xr-x 1 root apache 2786  4月 12 10:32 2018 pre-revprop-change
-rwxrwx--- 1 root apache 2786  8月 28 16:58 2017 pre-revprop-change.tmpl
-rwxrwx--- 1 root apache 2100  8月 28 16:58 2017 pre-unlock.tmpl
-rwxrwx--- 1 root apache 2780  8月 28 16:58 2017 start-commit.tmpl

これで、コミットログを修正すると、このpre-revprop-changeフックが起動し、サンプルのシェルをそのまま使えばログに関する修正のみ、0で正常終了するようになります。

下記の画面で「OK」をクリックしても、エラー画面は表示されなくなります。

メッセージを修正

なお、pre-revprop-changeのパーミッションを参考サイトの手順にしたがって744にしてログを修正すると、下記のような「Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.」というエラーになったため、755にしています。

Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.

3.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]

CSVDataImExporterプラグイン(MovableType7・コンテンツデータ対応版)

Movable Typeの記事をCSV形式で扱える「CSVDataImExporterプラグイン」をバージョンアップしました。

1.追加機能

MovableType7・コンテンツデータに対応しました。

インポート・エクスポートのメニューは、コンテンツデータ一覧に表示します。

インポート・エクスポートのメニュー

エクスポートのリンクをクリックすると、エクスポート画面が表示されるので、「CSVデータのエクスポート」をクリックすればCSVデータをエクスポートします。

エクスポート

エクスポートデータのサンプルは下記の通りです。

サンプルのコンテンツフィールド
コンテンツタイプ

エクスポートデータ

id,content_type_id,author_id,identifier,label,authored_on,modified_on,unpublished_on,unique_id,status,名前,説明_convert_breaks,説明,価格,URL,日付と時刻,日付,時刻,セレクトボックス,ラジオボタン,チェックボックス,アイテム,画像,カテゴリ,タグ,リスト,テーブル
1,1,1,test1,001,20180411211327,20180411211905,,68b9c31f56157c7de6040488f44f52b729ba01e4,2,テスト1,__default__,"aaa
bbb
ccc",10000,http://www.koikikukan.com/,2018-04-11 12:34:56,2018-04-30,00:00:03,M,1,"200,300",export-002-20171226221651.csv(3),bug-pbmt-white.png(2),"2,1",,"aaa,bbb,ccc","<tr>
		<td>1-1</td>
		<td>1-2</td>
		<td>1-3</td>
	</tr>
	<tr>
		<td>2-1</td>
		<td>2-2</td>
		<td>2-3</td>
	</tr>
	<tr>
		<td>3-1</td>
		<td>3-2</td>
		<td>3-3</td>
	</tr>
"

コンテンツフィールドの他に下記のフィールドをエクスポートします。

  • id
  • content_type_id
  • author_id
  • identifier
  • label
  • authored_on
  • modified_on
  • unpublished_on
  • unique_id
  • status

インポートのリンクをクリックするとインポート画面が表示されるので、必要な設定を行って「CSVデータのインスポート」をクリック。

インポートのメニュー

このような感じでインポートします。

インポート

評価ベータ版ということで、下記のコンテンツフィールドに対応した機能を提供します。

  • Single Line Text
  • Multi Line Text(フォーマットにも対応)
  • Number
  • URL
  • 日付と時刻
  • 日付
  • Time
  • Select Box
  • Radio Button
  • Checkboxes
  • アイテム
  • Audio Asset
  • Video Asset
  • Image Asset
  • Embedded Text
  • タグ
  • list
  • table

コンテンツフィールドの対応状況は下記のとおりです。

  • 日付と時刻/日付/Timeのフォーマットは記事・ウェブページと同じフォーマット
  • Multi Line Textのフォーマットは、CSVのフィールドとして出力
  • アイテム/Audio Asset/Video Asset/Image Assetは記事・ウェブページと同じフォーマット&アップロード対応

なお、現在のベータ版では下記の制約があります。→2018.4.17 すべて対応して製品版をリリースしました。

  • カテゴリセットはcategoryset_idでのインポート/エクスポートのみ可能(カテゴリ名には別途対応予定)→対応済
  • Select Box/Radio Button/Checkboxesはラベルではなく、値のみ対応(名前には別途対応予定)→対応済
  • 記事・ウェブページの機能は動作しません(別途対応予定)→対応済

また、すべての動作を確認できていないので、随時バージョンアップしていきます。

なおMT7製品版のリリース内容によって、操作・機能等を予告なしに変更する可能性もあります。ご了承ください。

2.プラグインのダウンロード

MT7・コンテンツデータ対応のCSVDataImExporterプラグインの評価版を公開中です。

ダウンロードは「CSVDataImExporterプラグイン」のページにアクセスしてください。

「CSVDataImExporterプラグイン」のページ
「CSVDataImExporterプラグイン」のページ

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages