cut

前提

 > echo-program.exe(またはecho-program.sh)
 ABC DEF XYZ
 123 456 789
 FOO BAR BAZ

上のような実行すると文字列を出力するプログラムがあるとする。

ConvertFrom-Csvコマンドレット

 echo-program.sh | cut -d " " -d 1,3                                                # Bash
 echo-program.exe | ConvertFrom-Csv -Delimiter " " -Header (1..3) | select "1", "3" # PowerShell

PowerShellで出力結果を整形するにはft -a等を使う。

デリミタの指定を正規表現で行いたい場合

 echo-program.sh  | awk 'BEGIN{FS=" +"}{print $1,":",$3}'  # Bash
 echo-program.exe | % { ($_ -split "\s+")[0,2] -join ":" } # PowerShell
  • %(Foreach-Object)でループ処理し、$_を-splitする際に"\s+"で正規表現を使う。
  • -splitの結果は配列なので、必要なデータだけスライスして取り出す。

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2013-08-08 (木) 20:46:18