ランダムバイトを含む2つのファイルがあるとし./delimiter
ます./data
。
./data
バイトシーケンスが最初に表示されるまで読んで除外したいと思います./delimiter
。
Bashを使ってこれを行うにはどうすればよいですか?
例:
- コンテンツ
./delimiter
world
- コンテンツ
./data
helloworld
- 予想される結果:
hello
類似/同等の質問:
注:read -d delim
文字列ではなく単一文字区切り文字のみをサポートしているため、問題は解決されません。また、バイトをサポートしていない変数に結果を格納しますNUL
。私は出力が欲しいですstdout
。
ベストアンサー1
Perlが救出に来る!
perl -e 'local $/;
open $de, "<", "delimiter" or die $!;
$/ = <$de>;
open $da, "<", "data" or die $!;
chomp( $first = <$da> );
print $first;'
特殊変数$/次のように入力レコード区切り記号を設定します。地元のこれを使用してファイル全体を読み込みます(「slurping」とも呼ばれます)。次に、ダイヤモンド演算子を使用してファイルの内容を読み取り、delimiter
その内容に区切り文字を設定します。次に、ファイルから最初のレコードを読み取りますdata
。噛むレコード区切り記号を抽出します。