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>
Respuestas:
Z shell (zsh), 13 bytes
Utiliza el
$path
parámetro , que es un parámetro de matriz especial utilizado por el shell que está vinculado al$PATH
parámetro, y un indicador de expansión de parámetros para unir una matriz con nuevas líneas.fuente
alias path="<<<${(F)path}"
pero cuando se ejecuta se imprime y/usr/local/bin zsh: no such file or directory: /Library/Apple/usr/bin zsh: no such file or directory: /Library/Apple/bin
luego va asbin
alias path='<<<${(F)path}'
Bash / Coreutils,
1716 bytesfuente
tr : '\n'<<<$PATH
debería funcionar también<<<
(probado solo en Ubuntu)\\n
lugar de la variable citada es más legible en mi humilde opinión.Lote, 41 bytes
PATH
está delimitado por punto y coma en Windows, por supuesto. Convenientemente,for
divide en punto y coma de forma predeterminada, pero de manera inconveniente, también en espacios, por lo que tengo que usar un truco de reemplazo de cadena para citar cada elemento de ruta antes de dividirlo. Luego queda eliminar las comillas después.fuente
%%
con%
guardar 2 bytes.Z shell (zsh), 15 bytes
Puede probar el código en Anarchy Golf : haga clic en usar formulario , seleccione zsh , pegue el código y envíelo.
Bash (puro), 19 bytes
La misma idea, pero con la sintaxis menos golfosa de Bash. Pruébalo en Ideone .
fuente
Powershell, 20 bytes
Editar:
Antiguo:
fuente
Rubí, 25 bytes
fuente
split ":"
asplit":"
osplit ?:
de 1 byte.Perl, 22 bytes
Necesita
-E
o-M5.010
correr:fuente
Bash + Python, 43 bytes
Usemos la expansión variable de shell. Elimina las llamadas
os.environ
, por lo tanto, menos código y menos importaciones. Eso nos da 46 bytes, y conxnor
el truco y la eliminación de espacio antes de que-c
tengamos 43 bytes.fuente
Java, 58 bytes
Programa completo: 106 bytes
fuente
GNU
sed
+bash
, 25 bytes:Si el
PATH
no contiene ningún nombre de directorio con espacios en blanco, no se necesitan comillas, 23 bytes:Incluso más corto, transliterando
:
a nueva línea, gracias a @Dennis :fuente
Vim, 19 bytes
"=$PATH<CR>p:s/:/\r/g<CR>
Agarra
$PATH
desde el registro de expresiones y pégalo. Convierte la:
s en nuevas líneas. Nada complicadofuente
PHP,
36353332 bytesGuardado 1 byte, gracias a Blackhole
Guardado 2 bytes, gracias a user59178
guardado 1 byte, gracias a Martijn
* versión nix
Versión de Windows
fuente
*nix
es solo una forma de referirse a un sistema tipo Unix .PATH_SEPARATOR
\n
, pero en cambio, una verdadera nueva línea le ahorrará un byte."
sPATH
. Recibes un aviso de "uso de constante indefinida" pero aún funciona, ahorrándote 2 bytes.<?=strtr(getenv(PATH),":","")?>
ahorra un byte (* no se puede marcar en los comentarios)Python 2, 49 bytes
Ahorrando 2 bytes gracias a @xnor y 1 byte reemplazando
environ
congetenv
gracias a @Serg y @OliverPara Python 3, solo agregue
(
y)
alrededor delprint
argumento y agregue 1 al recuento de bytes.fuente
replace
puede tomar argumentos llenosreplace(*':\n')
.C,
8584 bytes-1 byte para usar
#import
fuente
Raqueta 39 bytes
Usando el comando sed de @heemayl:
Sin golf:
Pruebas:
(f)
Salida:
fuente
Scala, 31 bytes
En scala,
a b c
es azúcar sintáctico paraa.b(c)
, así que esto compila parasys.env("PATH").replace(':','\n')
fuente
Perl 6 ,
28 2524 bytesfuente
C #, 64 bytes
Función anónima que devuelve la variable de ruta, cada directorio en una línea separada. Tenga en cuenta que
x
es solo un objeto ficticio para guardar 1 byte en lugar de usar()
.Programa completo:
También funciona en sistemas UNIX si se reemplaza
;
con:
, suponiendo bibliotecas Mono están disponibles. Pruébelo en línea en ideone , .NET Fiddle devuelve una excepción de seguridad.Alternativamente, un programa completo de C #, que es bastante detallado:
C #, 118 bytes
fuente
Haskell, 72 bytes
Una importación costosa y no
replace
dentro de la biblioteca estándar lo hace bastante largo.fuente
m ':'...
no necesita ese espacio?'
es un carácter válido dentro de los identificadores. Sin espacio definiríamos una función llamadam'
.C (x86), 60 bytes
Esto no funcionará en plataformas de 64 bits sin incluir stdlib.h , ya que getenv devuelve un int (32 bits) mientras que char punteros son 64 bits de ancho.
Todavía tengo que encontrar un compilador de C en línea de 32 bits.
C (x86-64), 70 bytes
En lugar de incluir stdlib.h , declaramos getenv nosotros mismos como una función que devuelve un carácter puntero.
He probado esto con gcc y clang en Linux; otras configuraciones pueden llorar sangre. Pruébalo en Ideone .
fuente
Factor , 28 bytes
para unix-likes. No sé cómo hacerlo en Windows ya que no estoy en un cuadro de Windows.
fuente
jq, 18 caracteres
(Código de 16 caracteres + opción de línea de comando de 2 caracteres)
Ejecución de muestra:
fuente
Awk,
5144 caracteresGracias a:
gsub()
lugar de manipular variables incorporadas (-7 caracteres)La
awk
forma típica sería configurar las variables integradas que influyen en cómoawk
manipula los datos automáticamente:Ejecución de muestra:
fuente
awk
Debía concentrarme en hacerlo de manera específica. Gracias.Node.js, 36 bytes
Muy claro.
fuente
MATLAB, 34 bytes
Aquí hay una demostración en línea en Octave con una ligera modificación ya que
strrep
en octava requiere que la segunda y la tercera entrada seanchar
variables en lugar de valores numéricos.fuente
R, 38 bytes
Tome el $ PATH, reemplácelo
:
con nuevas líneas e impresiones para stdout. Puedes probarlo en línea aquí.fuente
Groovy, 43 Bytes
fuente
Gema, 36 personajes
Ejecución de muestra:
fuente
Befunge-98 + huella digital EVAR, 34 bytes
Carga la huella digital EVAR (
"RAVE"4(
) para acceder fácilmente a las variables de entorno, obtiene el PATH envvar ("HTAP"G
), y para cada carácter, sale del programa si el carácter es "\ 0" (:!k@
), resta ASCII 48 "0" si el carácter es ASCII 58 ":" (:':-!'0*-
), y genera el carácter (,
).fuente
ELF / x86, 78 bytes
Fuente NASM:
fuente