問題のみのページはこちら。 問題で使うファイル等 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をつかいましょう。BSD系の人は玄人なので各自対応のこと。 Q1 次のechoの出力について、偶数番目の文字だけ大文字にしてください。できたら、奇数番目の文字だけ大文字にしてください。 $ echo abcdefghijkl
この記事はShell Script Advent Calendar 2016 18日目の記事です。 本記事の趣旨は、今年を中心にTwitterやシェル芸勉強会上で出たこわいワンライナーを、巷にあふれるクソバイラル的なランキング形式でお届けしようというものです。人さまのワンライナーを紹介していきます。普段、自分のブログでは人のふんどしでほんだしをとる1) ふんどしを脱ぐと立派な鰹節が出現するイメージの下ネタです。ようなことはなるべくしないことにしてますが、毎年謎に盛り上がるShell Script Advent Calendarに便乗してしれっとやります。あと、先日せっかくこんなことを書いたのにまるで自分で守ってないのは、やさぐれているからです。ご了承ください。 ということで、私、上田マリ(シェルガポール在住)の「シェル芸キュレーション」をお楽しみください。 今、私は、シェルガポールからのリ
本日は訳あって123D CIRCUITSでちまちまと論理ゲートを作っていました。論理ゲートというのは2進数を電圧の高低で入力すると、同じく電圧の高低で2進数を出力する回路で、コンピュータとかはこれでできています。ネット上で動くサンプルというものも少ないので、NOTとNAND、NANDでできたANDとORの例を置いておきます。 NOTゲート まず最初に作ったのは、下のNOTゲートと呼ばれるものです。NOTゲートはブレッドボードの上の回路で、左に電源と入力信号用の電池とスライドスイッチ、右に出力確認用のLEDがおまけで付いています。NOTゲートは信号の入出力をひっくり返すものです。信号の入力(黄色の線)が1(正の電圧)の時は出力(緑の線)が0(電圧がゼロ)、入力が0(電圧がゼロ)の時は出力が1(正の電圧)になります。 左上の再生ボタンを押すと動きます。重たいけど。 この回路のPMOSとNMOS
Tue Jul 2 12:48:28 JST 2013 (modified: Sat May 25 15:06:50 JST 2019) views: 44983, keywords:
本日は大変痛ましい事故が起こりました。私を訪ねてきた学生さんが一人、危険シェル芸の犠牲になりました。最大のリスクは生きることです。社会人になったら誰も守ってくれません。強く生きましょう。 さて、その後始末の時に、時間差危険シェル芸(より正確には時間差フォーク爆弾)を思いつきました。 アイデアはこんな感じ。過去に同じことを考えた人はいるでしょうが・・・。 ステップ1: .bashrc等にフォーク爆弾の関数を仕込んでおく(lsとかそういう人気のある名前で) ステップ2: lsと打つ。 ステップ3: 死ぬ。 検証 やってみました。VMで・・・と言いたいところですが、ノートPCを買い換えた時にVMを消してしまいました。某Ubuntu環境でやります。ツッコミは厳禁。 ログインしたら、.bashrcの一番下に次のように書きます。書き間違えると不発弾になって後世に迷惑がかかるのでやめましょう(消せよ)。
問題はこんなものでした 以下のように1から100まで数字が書いてあるansというファイルを作り、ansの中から素数でない数をワンライナーだけで消し去ってください。(ansの中身を書き換えるということです。forもwhileもなしで、コマンドはパイプでつないで。) ueda@ubuntu:~/tmp$ seq 1 100 > ans 問題の意図 意図は隠しつつ伝える必要があるので毎回苦労しますが、この問題は素数がポイントなのではなく、「入力ファイルを出力で上書きできますか?」ということがポイントです。 こういうことを言うと「シェルによって違う」という話になりがちですが、まずは理詰めで考えることの方が大事なんじゃないかなと、個人的には思います。コード読めという話も出てきますが、これも同様、理詰めで考えればわざわざ読む必要もありません。 攻略法 理屈で考えると、パイプラインの中身がすべて同時に動
こんなのを見てしまったばっかりに・・・ April 11, 2015 Macでこんなワンライナーを書いて実行してしまい・・・ $ echo ソーセージ 餃子 シメのラーメン | awk -v OFS="\xF0\x9f\x8d\xba" '{print $1,$2,$3}' こんな出力を得ました。 なんの役にもたたない・・・ さらに・・・ $ echo ソーセージ 餃子 シメのラーメン | sed p | sed p | sed p | awk -v OFS="\xF0\x9f\x8d\xba" '{print $1,$2,$3}' ほんとうにくだらない。ほんとうにくだらない。 あ、AWKのOFSっていうのは「output field separator」のことで、出力の区切り文字をこのようにオプションで指定できます。 最後にちょっと人の役に立ったかも。自分には何の役にもたってないけど。
12月のシェル芸勉強会よりもひどい問題を準備しましたので、時間をかけてお楽しみください。 追記: 解答はコチラ 解答はMacで作りました。ただし、Coreutilsが必要なので、 $ brew install coreutils をお願いします。Q1以外の解答は1/2頃に公開します(Q1は便利なので早めに公開しておきます)。解答はハッシュタグ「#シェル芸」でワイワイやっていただければと。 良いお年を。 Q1 年末年始はディレクトリの掃除をしましょう。ということで、ご自身のPCから重複しているデータを探してみてください。全てのファイルから探すのは大変なので、手始めに重複しているJPEG画像リストを作ってみてください。 解答 もし何も出てこなかったら適当なjpegファイルをコピーして検出できるか試してみてください。「sed ‘s/.*/”&”/’」はファイルに半角空白があるときのためにファイル
個人的に印象に残った解法をペタペタ貼り付けします。シェル芸勉強会関連のウェブ工作活動が続いておりますが、これが最後です。 公式の勉強会報告はこちらです。 問題はこちら シェル芸初参加だがみんな変態すぎて まるで追いつけない。 #シェル芸 — YOUG (@YOUG_XX) 2014, 12月 13 ・・・追いつかなくて・・・大丈夫だと思います・・・。 では、いってみましょう。 Q1での副会長の解答 腕が上がってるような気が。なぜかRedHat系でしか動かないのですが、いい感じです。 echo $(seq 1 100) | sed -e 's/[[:space:]]/\ \\*\ /g' | xargs expr #シェル芸 — (っ´∀`)っ ゃー (@nullpopopo) 2014, 12月 13 Q2をGNU sedでなくオリジナルのsedで解く n;n;n;n;n;n;n;n;n;
イントロ Q1 100!を計算してください。正確に。 Q2 次のseqからsed(と言ってもgsed)だけでfizzbuzzを完成させてください。 ueda@remote:~$ seq 100 | sed ... 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz ... Q3 このうち素数はどれでしょうか? ueda@remote:~$ echo 0xaf 0x13 0x0d 0x24 0x58 Q4 次の16進数(UTF-8)で書かれたメッセージを復元してください。 e89fb9e3818ce9a39fe381b9e3819fe38184 Q5 次のようなファイルを作ってください。 (catするとahoとだけ出て、容量は1GB。) ueda@remote:~$ cat hoge aho
ueda@remote:~$ seq 100 | xargs | tr ' ' '*' | bc 93326215443944152681699238856266700490715968264381621468592963895217\ 59999322991560894146397615651828625369792082722375825118521091686400\ 0000000000000000000000 ueda@remote:~$ python -c 'import math;print math.factorial(100)' 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く