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>
Réponses:
Shell Z (zsh), 13 octets
Utilise le
$path
paramètre , qui est un paramètre de tableau spécial utilisé par le shell lié au$PATH
paramètre, et un indicateur d'extension de paramètre pour joindre un tableau avec des sauts de ligne.la source
alias path="<<<${(F)path}"
mais une fois exécuté, il s'imprime/usr/local/bin zsh: no such file or directory: /Library/Apple/usr/bin zsh: no such file or directory: /Library/Apple/bin
ensuitesbin
alias path='<<<${(F)path}'
Bash / Coreutils,
1716 octetsla source
tr : '\n'<<<$PATH
devrait aussi fonctionner<<<
(testé sur Ubuntu uniquement)\\n
place de la variable citée est plus lisible à mon humble avis.Lot, 41 octets
PATH
est délimité par des points-virgules sur Windows bien sûr. Commodément,for
se fractionne sur les points-virgules par défaut, mais aussi sur les espaces, donc je dois utiliser la chaîne de remplacement pour tracer chaque élément de chemin avant de fractionner. Il reste alors à supprimer les guillemets par la suite.la source
%%
en%
économisant 2 octets.Shell Z (zsh), 15 octets
Vous pouvez tester le code sur Anarchy Golf : cliquez sur utiliser le formulaire , sélectionnez zsh , collez le code et soumettez.
Bash (pur), 19 octets
Même idée, mais avec la syntaxe moins golfique de Bash. Testez-le sur Ideone .
la source
Powershell, 20 octets
Modifier:
Vieux:
la source
Rubis, 25 octets
la source
split ":"
àsplit":"
ousplit ?:
pour 1 octet.Perl, 22 octets
Besoin
-E
ou-M5.010
pour exécuter:la source
Bash + Python, 43 octets
Utilisons l'expansion variable du shell. Il élimine les appels
os.environ
, donc moins de code et moins d'importations. Cela nous donne 46 octets, et avecxnor
l'astuce et la suppression d'espace avant d'-c
avoir 43 octets.la source
Java, 58 octets
Programme complet: 106 octets
la source
GNU
sed
+bash
, 25 octets:Si le
PATH
ne contient aucun nom de répertoire avec des espaces, aucune citation nécessaire, 23 octets:Encore plus court, translittérant
:
en newline, grâce à @Dennis :la source
Vim, 19 octets
"=$PATH<CR>p:s/:/\r/g<CR>
Saisissez
$PATH
le registre d'expression et collez-le. Transformez les:
s en nouvelles lignes. Rien de compliqué.la source
PHP,
36353332 octets1 octet enregistré, grâce à Blackhole
2 octets enregistrés, grâce à user59178
1 octet enregistré, grâce à Martijn
* version nix
Version Windows
la source
*nix
n'est qu'un moyen de faire référence à un système de type Unix .PATH_SEPARATOR
\n
, mais une véritable nouvelle ligne à la place, cela vous fera économiser un octet."
s autourPATH
. Vous obtenez un avis "utilisation de constante indéfinie" mais cela fonctionne toujours, vous économisant 2 octets.<?=strtr(getenv(PATH),":","")?>
sécurise un octet (* ne peut pas ajouter de nouvelle ligne dans les commentaires)Python 2, 49 octets
Économiser 2 octets grâce à @xnor et 1 octet en remplaçant
environ
pargetenv
merci à @Serg et @OliverPour Python 3, ajoutez simplement
(
et)
autour de l'print
argument et ajoutez 1 au nombre d'octets.la source
replace
peut prendre des arguments emballésreplace(*':\n')
.C,
8584 octets-1 octet pour l'utilisation
#import
la source
Raquette 39 octets
Utilisation de la commande sed de @heemayl:
Non golfé:
Test:
(f)
Sortie:
la source
Scala, 31 octets
En scala,
a b c
est le sucre syntaxique poura.b(c)
, donc cela compile poursys.env("PATH").replace(':','\n')
la source
Perl 6 ,
28 2524 octetsla source
C #, 64 octets
Fonction anonyme qui renvoie la variable path, chaque répertoire sur une ligne distincte. Notez que
x
c'est juste un objet factice pour enregistrer 1 octet au lieu d'utiliser()
.Programme complet:
Fonctionne également sur les systèmes UNIX si vous remplacez
;
par:
, en supposant que les bibliothèques Mono sont disponibles. Essayez-le en ligne sur ideone , .NET Fiddle renvoie une exception de sécurité.Alternativement, un programme C # complet, qui est plutôt verbeux:
C #, 118 octets
la source
Haskell, 72 octets
Une importation coûteuse et non
replace
dans la bibliothèque standard la rend assez longue.la source
m ':'...
n'a sûrement pas besoin de cet espace?'
s'agit d'un caractère valide dans les identifiants. Sans espace, nous définirions une fonction nomméem'
.C (x86), 60 octets
Cela ne fonctionnera pas sur les plates-formes 64 bits sans inclure stdlib.h , car getenv renvoie un int (32 bits) tandis que char pointeurs ont une largeur de 64 bits.
Je n'ai pas encore trouvé de compilateur C 32 bits en ligne.
C (x86-64), 70 octets
Au lieu d'inclure stdlib.h , nous déclarons getenv nous-mêmes comme une fonction retournant un char pointeur .
J'ai testé cela avec gcc et clang sous Linux; d'autres configurations peuvent pleurer du sang. Essayez-le sur Ideone .
la source
Facteur , 28 octets
pour unix-likes. Je ne sais pas comment le faire sur Windows car je ne suis pas dans une boîte Windows.
la source
jq, 18 caractères
(Code de 16 caractères + option de ligne de commande de 2 caractères)
Exemple d'exécution:
la source
Awk,
5144 caractèresGrâce à:
gsub()
au lieu de manipuler des variables intégrées (-7 caractères)La
awk
manière typique serait de configurer les variables intégrées qui influencent la façon dontawk
manipule les données automatiquement:Exemple d'exécution:
la source
awk
manière spécifique. Merci.Node.js, 36 octets
Assez simple.
la source
MATLAB, 34 octets
Voici une démo en ligne dans Octave avec une légère modification car
strrep
en octave, les deuxième et troisième entrées doivent être deschar
variables plutôt que des valeurs numériques.la source
R, 38 octets
Prenez le $ PATH, remplacez-le
:
par des retours à la ligne et imprimez-le sur stdout. Vous pouvez l'essayer en ligne ici.la source
Groovy, 43 octets
la source
Gema, 36 caractères
Exemple d'exécution:
la source
Befunge-98 + empreinte digitale EVAR, 34 octets
Charge l'empreinte digitale EVAR (
"RAVE"4(
) pour accéder facilement aux variables d'environnement, obtient le PATV envvar ("HTAP"G
) et pour chaque caractère, quitte le programme si le caractère est "\ 0" (:!k@
), soustrait ASCII 48 "0" si le caractère est ASCII 58 ":" (:':-!'0*-
), et sort le caractère (,
).la source
ELF / x86, 78 octets
Source NASM:
la source