Linuxとコマンドラインの基礎

$ echo "aaa bab" | sed 's/a/x/'

文字を置き換える上の sed のコマンドの出力として、正しいものはどれか。

  1. Axaa bab
  2. Bxaa bxb
  3. Cxxx bxb
答えと解説を見る

正解:A. xaa bab

sed の s/置き換える前/置き換えた後/ は、各行で最初に見つかった1か所だけを置き換えます。この行で最初の a は先頭の文字なので、出力は xaa bab です。行の中のすべてを置き換えるには、s/a/x/g のように最後に g(global)を付け、その場合の出力は xxx bxb になります。置き換えの単位は行なので、ファイルに複数の行があれば、g がなくても各行の最初の1か所ずつが置き換わります。

  • A. 正しい。g がないので、行の中の最初の a だけが x になります。
  • B. 置き換えは語ごとではなく行ごとに行われます。g がなければ、行の中の最初の1か所だけが置き換わります。
  • C. s/a/x/g のように g を付けたときの出力です。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 上の操作で、最後の awk が出力する内容として、正しいものはどれか。
  2. GNU の find で「find /data -name "*.log" -mtime +7 -size +100M」を実行したときに見つかるファイルの説明として、正しいものはどれか。
  3. 応答しなくなったプロセスを止めるとき、まず「kill プロセスID」を使い、それでも終わらないときだけ「kill -9 プロセスID」を使うのがよいとされる。その理由として、正しいものはどれか。
  4. 端末で時間のかかる ./sim.sh を実行している途中で、同じ端末でほかのコマンドを使いたくなった。Ctrl+Z を押した後に bg を実行したときの動作として、正しいものはどれか。
  5. SSH で接続したサーバで、時間のかかる処理を「./run.sh &」で起動してから接続を切ったところ、処理も止まってしまった。接続を切った後も処理を続けさせる起動のしかたとして、最も適切なものはどれか。