シェルスクリプトで上下左右から何文字か切り取る方法(行列の操作)
Contents
はじめに
シェルスクリプトで上下左右から文字列を切り取る方法について。
共通したコマンドがないため、いくつかのコマンドを組み合わせて実現することになります。
検証環境
準備
以下のコマンドを実行し、操作対象のテキストファイルを作成します。
いろいろな切り取り方法
上から2行切り取り
sed
コマンドを利用する方法があります。
tail
コマンドを利用する方法もあります。
( プラス + 記号をつけるのがポイントです。 )
下から2行切り取り
sed
コマンドを利用する方法がありますが、事前に行数を調べるために wc -l
を利用しなければならないためスマートとは言えません。
head
コマンドを利用するのが簡単でしょう。
( tail
の時とは反対に マイナス - 記号をつけるのがポイントです。 )
左から2列切り取り
sed
コマンドを使う方法。
cut
コマンドを使う方法。
こちらは 3文字目以降を出力する という意味になります。
右から2列切り取り
sed
コマンドを使う方法。
cut
コマンドを使う方法。
こちらは 8文字目までを出力する という意味になります。
※こちらも予め列数を把握しておかないといけないという問題があります。
その他の方法
head
/ tail
/ sed
のコマンド使い分けが面倒という方向けに、 tt
というコマンドを作成しました。
Githubで公開しています。
こちら、Dockerイメージとしても公開しています。
使い方は以下のようになります。
ひとこと
まとめるとおすすめの方法は以下のとおりです。
- 「上」をtrimする :
tail
コマンド - 「下」をtrimする :
head
コマンド - 「左右」をtrimする :
sed
コマンド
ディスカッション
コメント一覧
まだ、コメントがありません