2

ファイルを取得して、文字列パターンの最初の出現をファイルの完全な行として見つける必要があります。

Acknowledgments:

そして、一致した行からファイルの最後まで新しいファイルを作成したいと思います。

私はperlがこれを行うための良い方法だと思いますが、私はperlの人ではありません。あるいは、sedが良い方法ですか?

Unixでこれを確実に達成するための簡単な方法を提案してください。

4

2 に答える 2

5

sedを使用してこれを行う1つの方法は次のとおりです。

sed -n '/^Acknowledgements:$/,$p' input-file > output-file

この-nオプションは、入力から出力への出力を抑制します。この/^Acknowledgements:$/,$部分は、正規表現に一致する行から^Acknowledgements:$ファイルの終わりまで一致し($)、それらの行pを出力に出力する()というアドレス範囲の指定です。

-i入力ファイルと出力ファイルを同じにする場合は、sedにインプレースで編集するように指示するオプションも指定する必要があります。

于 2010-05-22T16:00:53.137 に答える
3

Perl

これがあなたが求めていることを達成するはずのスクリプトです。

use strict;
use warnings;

open my $input,  '<', 'inputFile.txt';   # Open handle to input file 
open my $output, '>', 'output.txt';      # Open handle to output file

while (<$input>) {
    
    next if /^Acknowledgments:$/ .. 0;
    
    chomp $_;
    print $output $_,"\n";
}

close $input;
close $output;

以下は、同等のPerlワンライナーです。

perl -ne 'print if /^Acknowledgments$/ .. 0' inputFile > outputFile
于 2010-05-22T16:11:50.097 に答える