var QUESTION_ID=96334,OVERRIDE_USER=15422;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Z shell (zsh), 13 byte
Menggunakan
$path
parameter , yang merupakan parameter array khusus yang digunakan oleh shell yang terkait dengan$PATH
parameter, dan bendera ekspansi parameter untuk bergabung dengan array dengan baris baru.sumber
alias path="<<<${(F)path}"
tetapi ketika dieksekusi mencetak/usr/local/bin zsh: no such file or directory: /Library/Apple/usr/bin zsh: no such file or directory: /Library/Apple/bin
kemudian pergi kesbin
alias path='<<<${(F)path}'
Bash / Coreutils,
1716 bytesumber
tr : '\n'<<<$PATH
harus bekerja juga<<<
juga (diuji pada Ubuntu saja)\\n
bukannya variabel yang dikutip lebih mudah dibaca.Batch, 41 byte
PATH
dibatasi titik koma di Windows tentu saja. Mudah,for
membagi pada titik koma secara default, tetapi tidak nyaman, juga pada spasi, jadi saya harus menggunakan string ganti tipu daya untuk mengutip setiap elemen jalan sebelum membelah. Kemudian tetap menghapus tanda kutip sesudahnya.sumber
%%
dengan%
menyimpan 2 byte.Z shell (zsh), 15 byte
Anda dapat menguji kode pada Golf Anarki : klik formulir penggunaan , pilih zsh , rekatkan kode dan kirim.
Bash (murni), 19 byte
Gagasan yang sama, tetapi dengan sintaksis Bash yang kurang golf. Uji di Ideone .
sumber
Powershell, 20 byte
Edit:
Tua:
sumber
Ruby, 25 byte
sumber
split ":"
kesplit":"
atausplit ?:
untuk 1 byte.Perl, 22 byte
Perlu
-E
atau-M5.010
untuk dijalankan:sumber
Bash + Python, 43 byte
Mari kita gunakan ekspansi variabel shell. Ini menghilangkan panggilan
os.environ
, sehingga lebih sedikit kode dan lebih sedikit impor. Itu memberi kita 46 byte, dan denganxnor
trik dan menghapus ruang sebelum-c
kita punya 43 byte.sumber
Java, 58 byte
Program lengkap: 106 byte
sumber
GNU
sed
+bash
, 25 byte:Jika
PATH
tidak mengandung nama direktori dengan spasi, tidak perlu mengutip, 23 byte:Bahkan lebih pendek, transliterasi
:
ke baris baru, terima kasih kepada @Dennis :sumber
Vim, 19 byte
"=$PATH<CR>p:s/:/\r/g<CR>
Raih
$PATH
dari daftar ekspresi dan tempel. Ubah:
s menjadi baris baru. Tidak ada yang rumit.sumber
PHP,
36353332 byteDisimpan 1 byte, terima kasih kepada Blackhole
Disimpan 2 byte, terima kasih kepada pengguna59178
disimpan 1 byte, terima kasih kepada Martijn
* versi nix
Versi Windows
sumber
*nix
hanyalah cara merujuk ke sistem mirip Unix .PATH_SEPARATOR
\n
, melainkan baris baru yang benar, itu akan menghemat satu byte."
sekitarPATH
. Anda mendapat pemberitahuan "penggunaan konstanta tidak terdefinisi" tetapi tetap berfungsi, menghemat 2 byte.<?=strtr(getenv(PATH),":","")?>
brankas gema pendek satu byte (* tidak dapat baris baru dalam komentar)Python 2, 49 byte
Menyimpan 2 byte berkat @xnor dan 1 byte dengan mengganti
environ
dengangetenv
terima kasih kepada @Serg dan @OliverUntuk Python 3, cukup tambahkan
(
dan)
sekitarprint
argumen dan tambahkan 1 ke jumlah byte.sumber
replace
dapat mengambil argumen yang dikemasreplace(*':\n')
.C,
8584 byte-1 byte untuk digunakan
#import
sumber
Racket 39 byte
Menggunakan perintah sed dari @heemayl:
Tidak Disatukan:
Pengujian:
(f)
Keluaran:
sumber
Scala, 31 byte
Dalam scala,
a b c
adalah gula sintaksis untuka.b(c)
, jadi ini dikompilasi menjadisys.env("PATH").replace(':','\n')
sumber
Perl 6 ,
28 2524 bytesumber
C #, 64 byte
Fungsi anonim yang mengembalikan variabel jalur, setiap direktori pada baris terpisah. Perhatikan bahwa
x
ini hanyalah objek tiruan untuk menyimpan 1 byte alih-alih menggunakan()
.Program lengkap:
Juga berfungsi pada sistem UNIX jika Anda menggantinya
;
dengan:
, anggap perpustakaan Mono tersedia. Cobalah online di ideone , .NET Fiddle mengembalikan pengecualian keamanan.Atau, program C # lengkap, yang agak bertele-tele:
C #, 118 byte
sumber
Haskell, 72 byte
Impor yang mahal dan tidak ada
replace
dalam perpustakaan standar membuatnya cukup lama.sumber
m ':'...
tidak membutuhkan ruang itu?'
karakter yang valid dalam pengidentifikasi. Tanpa spasi, kami akan mendefinisikan fungsi bernamam'
.C (x86), 60 byte
Ini tidak akan bekerja pada platform 64-bit tanpa menyertakan stdlib.h , karena getenv mengembalikan int (32 bit) sementara pointer char lebar 64 bit.
Saya belum menemukan kompiler C 32-bit online.
C (x86-64), 70 byte
Alih-alih memasukkan stdlib.h , kami mendeklarasikan getenv sebagai fungsi mengembalikan pointer char .
Saya sudah menguji ini dengan gcc dan dentang di Linux; setup lain mungkin menangis darah. Cobalah di Ideone .
sumber
Faktor , 28 byte
untuk unix-likes. Saya tidak tahu bagaimana melakukannya di Windows karena saya tidak berada di kotak Windows.
sumber
jq, 18 karakter
(16 karakter kode + 2 opsi opsi baris perintah)
Contoh dijalankan:
sumber
Awk,
5144 karakterTerimakasih untuk:
gsub()
daripada memanipulasi variabel bawaan (-7 karakter)Cara tipikal
awk
adalah mengatur variabel bawaan yang memengaruhi caraawk
memanipulasi data secara otomatis:Contoh dijalankan:
sumber
awk
cara-spesifik. Terima kasih.Node.js, 36 byte
Cukup lurus ke depan.
sumber
MATLAB, 34 byte
Berikut ini adalah demo online dalam Oktaf dengan sedikit modifikasi karena
strrep
dalam oktaf membutuhkan input kedua dan ketiga menjadichar
variabel daripada nilai numerik.sumber
R, 38 byte
Raih $ PATH, ganti
:
dengan baris baru dan cetak ke stdout. Anda dapat mencobanya online di sini.sumber
Groovy, 43 Bytes
sumber
Gema, 36 karakter
Contoh dijalankan:
sumber
Befunge-98 + sidik jari EVAR, 34 byte
Memuat sidik jari EVAR (
"RAVE"4(
) untuk dengan mudah mengakses variabel lingkungan, mendapatkan PATH envvar ("HTAP"G
), dan untuk setiap karakter, keluar dari program jika karakternya adalah "\ 0" (:!k@
), kurangi ASCII 48 "0" jika karakternya adalah ASCII 58 ":" (:':-!'0*-
), dan menampilkan karakter (,
).sumber
ELF / x86, 78 byte
Sumber NASM:
sumber