2021年1月4日月曜日

言語処理100本ノック 問題11

 問. popular-names.txtは,アメリカで生まれた赤ちゃんの「名前」「性別」「人数」「年」をタブ区切り形式で格納したファイルである.以下の処理を行うプログラムを作成し,popular-names.txtを入力ファイルとして実行せよ.さらに,同様の処理をUNIXコマンドでも実行し,プログラムの実行結果を確認せよ.

タブ1文字につきスペース1文字に置換せよ.確認にはsedコマンド,trコマンド,もしくはexpandコマンドを用いよ.

 

解答例:UNIXコマンドでの確認

sed -e 's/\t/ /g' ./popular-names.txt | tail -n 5

出力

 Benjamin M 13381 2018
Elijah M 12886 2018
Lucas M 12585 2018
Mason M 12435 2018
Logan M 12352 2018


unixの標準コマンドストリームエディタsedを用いた。

sed -e 's/AAA/BBB/g' ファイル名

ファイルの中のAAAをBBBで最初(s/)から終わり(/g)まで置換する。

今回は\t(タブ)を//(スペース)に変換している。

その後、パイプ(|)でtail -n 5(末尾から5行表示する)につないでいる。


参考リンク

【言語処理100本ノック 2020】第2章: UNIXコマンド 

sedでこういう時はどう書く?

【Linuxコマンド】sedで文字列を置換する方法 

sedコマンドの備忘録


 

0 件のコメント:

コメントを投稿