ファイルの末尾の改行文字を削除して新しいファイルを作成します。

ファイルの末尾の改行文字を削除して新しいファイルを作成します。

H:とT:の間には、次のデータレコードを含むフラットファイルがあります。

H:20050427 HEADER RECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
T:20050427 TRAILER RECORD
[blank space]

[Space]はT(Enterキー)の後に生成された新しい行です。

ファイル(存在する場合)からスペースを削除し、H:とT:の間にあるデータで新しいファイルを作成するにはどうすればよいですか?

答え1

ただ削除したい場合みんな [blank space](通常はスペースを含めることができます)行:

sed '/^[[:space:]]*$/ d' filename > newfile

または単に(なぜ気にするawksed):

grep . filename > newfile

または、H:とT:行の間に印刷してください。

sed -n '/^H:.*/, /^T:.*/ p' filename > newfile

答え2

あなたは2つの異なる質問をしています。正確に何をしたいのか分かりません。

空行を削除

awkすべての行を文字と一致させ、次の文字のみを出力するために使用されます。

$ awk '/./ {print}' /path/to/your/file

H:とT:の間の出力ラインのみ

awkで始まる行を一致させ、H:それらのT:間の行のみを出力するために使用されます(他の行にこれらの接頭辞がないと仮定)。

$ awk '/^H:/,/^T:/ {print}' /path/to/your/file

関連情報