以下のUnixファイル名があり、ファイル名の最初の5文字を抽出する必要があります。カットを使用してフィールドの内容を抽出できることを知っていますが、ファイルの最初の5文字を取得しようとしています。
abc12345
def12345
ghi12345
私の予想結果は次のとおりです。
abc12
def12
ghi12
答え1
シェルの文字列操作機能の使用
どのスクリプトコンテキストで使用するかを指定していないので、一般的な例を見てみましょう。
シェル変数が$x
文字列を保持していると仮定するabc12345
と、${x:0:5}
これは最初の5文字を表します。$x
つまり、abc12
。
答え2
Posix互換は、cut
文字(またはUTF-8では同じではないバイト)で切り捨てることもできます。
cut -c-5
または
cut -b-5
それぞれ
答え3
ファイル名の最初の5文字が欲しいとしましょう。
文字はcut
通常バイト数が減るため動作しません。ただし、正確に5文字であれば、
次のようにPOSIX移植性を使用できます。${var#?????}
filename='def12345'
result=${filename%"${filename#?????}"}
echo "$result"