タグ: Linux

  • [言語比較]””{}|| : 文字列定数をあらわす記号

    [言語比較]””{}|| : 文字列定数をあらわす記号

     文字列を囲う記号を整理してみましょう。

    Java

    • ”文字列値”

    C#

    • @”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    Python

    • r”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    PHP

    • ‘文字列値’
    • ”文字列値” : $から始まる変数を設定できます

    Lotus Script 言語

    • ”文字列値”
    • {文字列値}
    • |文字列値|

    VbScript 言語

    • ”文字列値”

    Lotus 式言語

    • ”文字列値”
    • {文字列値}

    {}(ちゅうかっこ)は””(ダブルコーテーション)に自動変換されます

  • [言語比較]Rem : コメント

    [言語比較]Rem : コメント

    Lotus Script

    ' 行末までコメント
    
    Rem 行末までコメント
    
    %REM
    複数行コメント
     注意 : %REM と %END REM は行の先頭から記載します
    %END REM

    VbScript

    ' 行末までコメント
    
    Rem 行末までコメント

    Lotus 式言語

    REM {括弧で囲んだ範囲がコメント};
    
    REM "括弧で囲んだ範囲がコメント";
  • [Linux]lsで取得したファイル一覧をTSV形式に変換して表計算ソフトに取り込みました

    [Linux]lsで取得したファイル一覧をTSV形式に変換して表計算ソフトに取り込みました

     lsコマンドでファイルの一覧を取得できますが、表計算ソフトに貼り付けられるようなテーブルではありません。使い勝手を良くするためにCSVまたはTSV形式のファイルに変換してみましょう。

     lsコマンドの結果は次のような規則があります。
     「/」で始まる行はディレクトリをあらわします。ここからディレクトリの情報が表示されるという意味です。
     「-(ハイフン)」で始まる行はファイルです。

     では、ノーツ(開発プラットホーム)のアクションボタンでCSVやTSVに変換するプログラムをコーディングしてみましょう。
     ※最初はC#で変換しようとしましたが、ノーツの手軽さに負けました。

     次は、Windows OS のドキュメントフォルダの source.txt ファイルを読み込んで result.tsv を作成するプログラムになります。コーディングの手間を減らすためにファイル名を固定にしています。

    Option Declare
    
    Const SOURCE_FILE = {source.txt}
    Const CHAR_SET = {UTF-8}
    Const RESULT_FILE = {result.tsv}
    Const PathPartition0 = {/}   ' 初期値
    Const PathPartition1 = {\}   ' 選択値
    
    Sub Click(Source As Button)
    	Dim RESULT_SEPARATOR As String
    	RESULT_SEPARATOR = Chr (9)
    	
    	Dim sourcefolder As String
    	Dim pathpartition As String
    	Dim sourcefilepath, resultfilepath As String
    	Dim scriptshell As Variant
    	Dim sourcefile, resultfile As Integer
    	
    	On Error Resume Next
    	Set scriptshell = CreateObject ({WScript.Shell})
    	sourcefolder = scriptshell.SpecialFolders ({MyDocuments})
    	On Error Goto 0
    	If 0 = Len (sourcefolder) Then
    		Print {MyDocuments フォルダが不明}
    		Exit Sub
    	End If
    	pathpartition = PathPartition0
    	If 0 < Instr (1, sourcefolder, PathPartition1) Then
    		pathpartition = PathPartition1
    	End If
    	sourcefilepath = sourcefolder + pathpartition + SOURCE_FILE
    	
    	
    	sourcefile = Freefile ()
    	Err = 0
    	On Error Resume Next
    	Open sourcefilepath For Input As sourcefile Charset = CHAR_SET
    	On Error Goto 0
    	If 0 < Err Then
    		Print {ファイルが見つかりません : } + sourcefilepath
    		Exit Sub
    	End If
    	resultfile = Freefile ()
    	resultfilepath = sourcefolder + pathpartition + RESULT_FILE
    	On Error Resume Next
    	Open resultfilepath For Output As resultfile
    	On Error Goto 0
    	If 0 < Err Then
    		Print {ファイルを作成できません : } + resultfilepath
    		Close sourcefile
    		Exit Sub
    	End If
    	
    	Dim sourceline, currentdirectory As String
    	currentdirectory = {}
    	Do Until True = Eof (sourcefile)
    		Line Input #sourcefile, sourceline
    		Select Case Left (sourceline, 1)
    		Case {/}
    			Select Case Right (sourceline, 1)
    			Case {:}
    				currentdirectory = Left (sourceline, Len (sourceline) -1)
    			End Select
    		Case {-}
    			Dim columns (1) As String
    			Dim position, beforeposition, column As Long
    			columns (0) = currentdirectory
    			beforeposition = -1
    			column = 1
    			For position = 1 To Len (sourceline)
    				Select Case Mid (sourceline, position, 1)
    				Case { }
    					If (beforeposition + 1) <> position Then
    						column = column + 1
    					End If
    					beforeposition = position
    				Case Else
    					If (beforeposition + 1) = position Then
    						If 8 = column Then
    							columns (1) = Mid (sourceline, position)
    							Exit For
    						End If
    					End If
    				End Select
    			Next
    			Print #resultfile, Implode (columns, RESULT_SEPARATOR)
    		End Select
    	Loop
    	Close resultfile
    	Close sourcefile
    End Sub

      表計算ソフトを開いて、メニューの[開く]から result.tsv を選択して、区切文字をタブに指定して読み込めば完了です。
     ls で / 以下すべてを取得しているとき、result.tsv の中身を表計算ソフトへコピペするとメモリ不足エラーが表示されることがあるため注意です。

  • [Ubuntu]別名を設定

    はじめに

     例えばLaravelで使う[sail]ですが、フルパスを付けると[/home/○/○○/vendor/bin/sail]となります。毎回使うことを考えると、もっと短くしたいと考えるでしょう。
     ※○や○○には環境によって異なる値が設定されます。

    フルパスを調べる

     今どこにいるのか、カレントディレクトリを調べましょう。Ubuntuで次の命令を入れます。

    pwd

     うまく /home/○/○○/vendor/bin/sail の○部分を調べることができたでしょうか?

     次にUbuntuの設定ファイルに追記します。Ubuntuで次の命令を入れて、テキストエディターを起動します。

    vi ~/.profile

     コンソールにファイル内容が表示されたとおもいます。
    キーボードで「i」キーを押して、挿入モードにします。カーソルはファイルの先頭位置にあるとおもいます。その位置で次の行を挿入します。[○]部分は、先に調べたパスで置換してください。

    alias sail='[ -f sail ] && bash sail || bash /home/○/○○/vendor/bin/sail'

     次に[Enter]キーを押して改行します。そして[ESC]キーを押して挿入モードを終えます。
    ファイルを保存して閉じるために次の命令を入力して[Enter]キーを押します。

    :wq

     更新したファイルを反映させるために、Ubuntuへ次の命令を入力します。

    source ~/.profile

     これで別名の設定は終了です。[sail]と入力したらsailのヘルプが出てくるようになりましたか?

  • [Linux]ファイル一覧を取得

    [Linux]ファイル一覧を取得

    Linux系でファイルとディレクトリの両方を取得するには次のコマンドを実行します

    ls -a -l -R --time-style=long-iso /

    すべてのファイルを取得するため「/(ルートディレクトリ)」を設定します

    出力結果をファイルに書き出すには次のようにします

    ls -a -l -R --time-style=long-iso / 1>ファイル名 2>&1

    「2>&1」でエラーもファイルに書き出します

    ファイルだけを取得したいときは次のようにします

    ls -a -l -R --time-style=long-iso / | grep -v "^d" | grep -v "^l" | grep -v "^c" | grep -v "^b" | grep -v "^total " >ファイル名

    「grep -v」で先頭文字が{d, l, c, “total “}行を除外します
    grepを付けると「2>&1」が無効になってエラーが画面表示されるみたいです

    lsの行頭の記号の意味

    d : ディレクトリ
    l : シンボリックリンク
    c, b : デバイスファイル
    – : ファイル