【問題のみ】第27回sedこわいシェル芸勉強会
Sat Feb 11 13:10:40 JST 2017 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 2663, keywords:コマンド,Linux,シェル芸,シェル芸勉強会 この記事は最終更新日が7年以上前のものです。
解答例はこちら。
問題で使うファイル等
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