このようなファイルがあります。
サンプル1.txt
ABCDE10998909
10898990XYZ
1898772222YGH
8980000000000sihgj
出力:
ABCD
ファイルの最初の行の最初の4文字を取得して変数に入れる必要があります。
ベストアンサー1
使用head
とcut
:
$ variable=$( head -n 1 sample1.txt | cut -c 1-4 )
$ printf 'variable is %s\n' "$variable"
variable is ABCD
を使用して最初の行を抽出し、をhead
使用して最初の4文字を切り取りますcut
。一部の実装では、cut
最初の4つを返すことがあります。バイト最初の4つの代わりに数値(例:GNU cut
)。これは、データがマルチバイト文字を使用する場合に影響します。
使用sed
:
$ variable=$( sed 's/^\(....\).*/\1/;q' sample1.txt )
$ printf 'variable is %s\n' "$variable"
variable is ABCD
sed
最初の行の最初の4文字を使用して置き換え、修正されたsed
行を出力して終了します。
最初の行に4文字未満が含まれている場合、両方のバリアントは4文字未満を生成します。
あなたの質問にタグが付けられました。歴史 Unix。以前のシェルでは、より現代的で合理的なシェルを使用するのではなく、sh
バックティック()を使用してコマンドを置き換える必要があります。`...`
$(...)