【問題のみ】第27回sedこわいシェル芸勉強会

Sat Feb 11 13:10:40 JST 2017 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 2313, keywords:コマンド,Linux,シェル芸,シェル芸勉強会 この記事は最終更新日が6年以上前のものです。

解答例はこちら

問題で使うファイル等

GitHubにあります。ファイルは

https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.27

にあります。

クローンは以下のようにお願いします。

$ git clone https://github.com/ryuichiueda/ShellGeiData.git

イントロ

環境

対象とするsedはGNU sedだけに絞っています。解答例はUbuntu Linux 16.04 で作成。Macの場合はcoreutilsをインストールの上、gsedをつかいましょう。GSD系の人は玄人なので各自対応のこと。

Q1

次のechoの出力について、偶数番目の文字だけ大文字にしてください。できたら、奇数番目の文字だけ大文字にしてください。

$ echo abcdefghijklmn

Q2

seq 1 100から始めてsedだけでFizzBuzzをやってみましょう。

Q3

次の出力について、3行目を7行目の下に移動してください。

$ seq 1 10

Q4

次のコードのmainとahoの位置を入れ替えてください。

$ cat aho.cc 
   #include <iostream>
   using namespace std;
   
   int main(int argc, char const* argv[])
   {
       aho();
       return 0;
   }
   
   void aho(void)
   {
       cout << "aho" << endl;
   }

Q5

seq 1 10 | から始めて次のような出力を作ってください。

2
   1
   4
   3
   6
   5
   8
   7
   10
   9

Q6

echo 1から始めて次のような出力を作ってください。

1
   11
   111
   1111
   11111
   111111
   1111111
   11111111
   111111111
   1111111111

Q7

aというファイルをtouch等で作り、次の縛りでa1, a2, a3, ..., a10というファイルをaからコピーして作ってください。縛り1と縛り2を独立した別々の問題として解き、その後縛り1,2を両方満たす解を考えてみましょう。

  • 縛り1: 使うコマンドはseq、cp、sedだけ
  • 縛り2: ワンライナー中で数字を使わない

Q8

echo 1 | から始めて、あとはsedだけで次のような出力を得てください。

1
   11
   111
   1111
   11111
   11111
   1111
   111
   11
   1
ノート   このエントリーをはてなブックマークに追加 
 

prev:第27回sedこわいシェル芸勉強会 next:【問題と解答】第27回sedこわいシェル芸勉強会

やり散らかし一覧

記事いろいろ