2017-08-13 11 views
-1

awkプログラミングについて学び始めましたが、まだbash端末でそれに慣れています。私はEDドと終了でを開始文字列に一致するように式を記述した場合、私は思っていたそれはどのようにのでしょうか?開始文字と終了文字の一致する文字列

は、次のようなものを考えていた:私は開始と一致し、awkコマンドで最後にマッチ

echo -e "deed\ndeath\ndone\ndeindustrialized" |awk '/^de.ed$/' 

が、それは何も印刷されません。私はいくつかの助けに感謝します。

それは生成する必要があります:

deed 
deindustrialized 

を私はちょうど今日始めと知っていただきたいと思います。

+0

「エコー」死の出力は "| awk 'script''となるべきですか?フィードの "エコー"はどうですか? "| awk 'script'''?言い換えれば、 'de'で始まり' ed'で終わる単語や、それを行う行全体、またはdeで始まる行やdeで始まってedで終わっている行、またはelseで終わる行をマッチさせようとしていますか?実際に何を一致させたいのかを本当に考えてから、それが必要なときにマッチするだけではなく、コード化するのが難しいサンプルの入出力を作成します。 –

答えて

2

awkの部分は次のようになります。

... | awk '/^de.*ed$/' 
deed 
deindustrialized 

.は、任意の文字と一致し、*は、前の項目を0回以上一致することを意味します。

+0

説明をありがとう!しかし、私は出力がありますが、工業化されていません。 – Electric

+0

あなたのファイルには、おそらくWindowsの行末があります。 '\ r \ n'は最後の文字が実際に' \ r'であることを意味します。これはうまくいくのですか? 'awk '/^de.*ed\r?$ /'' –

+0

私は実際に_file_を書きましたか?ああああ... –

1

のawkで試してみてください。

echo -e "deed\ndeath\ndone\ndeindustrialized" | awk 'NR==1;END{print}' 

後は同じにあまりにも説明です。

awk ' 
NR==1;  ###Checking the NR(Number of line) value is 1, if yes then print the current line(awk works on method of pattern/action, if a condition is TRUE then do actions, in case of NO action do default action which is print of current line). 
END{print}' ###In END section now, so it will print the last line of Input_file. 
+0

Cool。しかし、NRは何を表していますか?あまりにも説明が大好きです。 – Electric

+0

今すぐ更新を行ってください。 – RavinderSingh13

+1

素晴らしい!将来的には役立つだろう! – Electric

関連する問題