{"id":19364294,"url":"https://github.com/orc/secho","last_synced_at":"2025-02-24T13:13:18.804Z","repository":{"id":137108181,"uuid":"558957","full_name":"Orc/secho","owner":"Orc","description":"A sick horrible parody of GNU feature creep","archived":false,"fork":false,"pushed_at":"2020-06-15T22:41:41.000Z","size":44,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-06T20:51:20.056Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.pell.portland.or.us/~orc/Code/secho","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Orc.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2010-03-12T08:21:34.000Z","updated_at":"2019-07-15T19:49:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"780357e2-6edf-4264-b42a-b3389630072c","html_url":"https://github.com/Orc/secho","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orc%2Fsecho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orc%2Fsecho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orc%2Fsecho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Orc%2Fsecho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Orc","download_url":"https://codeload.github.com/Orc/secho/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240483764,"owners_count":19808635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:37:01.251Z","updated_at":"2025-02-24T13:13:18.785Z","avatar_url":"https://github.com/Orc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Secho** was inspired by a post to the [Plan 9][] mailing list,\nwhere, after a round of bashing on the Unix implementation of [`echo`][echo],\nthe discussion went to bashing a hypothetical FSF-style implementation of `echo`\nand eventually to:\n\n\u003e \u003e ##NAME##\n\u003e \u003e \n\u003e \u003e echo: echo arguments\n\u003e \u003e \n\u003e \u003e ##SYNOPSIS##\n\u003e \u003e \t\n\u003e \u003e echo [-1abCDEeilmNnOqrtuVvwXx] [-B base] [-c cmd] [-d char] [-f file] [-L len] [-o file] [-S voice] [-s char] [args...]\n\u003e \u003e \n\u003e \u003e ##DESCRIPTION##\n\u003e \u003e \t\n\u003e \u003e echo outputs its arguments. It takes the following switches:\n\u003e \u003e \n\u003e \u003e =-1=\n\u003e \u003e     One argument per line.\n\u003e \u003e =-a=\n\u003e \u003e     Output in ASCII. The default.\n\u003e \u003e =-B base=\n\u003e \u003e     Output in given base, 2..32. Unless `-u` also given, base \u003e 10 shows lowercase.\n\u003e \u003e =-b=\n\u003e \u003e     Output in binary.\n\u003e \u003e =-C=\n\u003e \u003e     Don't echo anything, just print the number of fields.\n\u003e \u003e =-c cmd=\n\u003e \u003e     Run cmd on each argument, replacing `$?` with the argument itself.\n\u003e \u003e =-D=\n\u003e \u003e     Output in decimal.\n\u003e \u003e =-d char=\n\u003e \u003e     Field delimiter. Default is end of argument.\n\u003e \u003e =-E=\n\u003e \u003e     Print to standard error instead of to standard output.\n\u003e \u003e =-e=\n\u003e \u003e     Allow escape sequences\n\u003e \u003e =-f file=\n\u003e \u003e     Read from file, then from command line (if any).\n\u003e \u003e =-i=\n\u003e \u003e     Read arguments from standard input.\n\u003e \u003e =-L len=\n\u003e \u003e     Line width set to len. Default is to ignore line lengths.\n\u003e \u003e =-l=\n\u003e \u003e     Turn uppercase to lowercase.\n\u003e \u003e =-m=\n\u003e \u003e     Multi-column output.\n\u003e \u003e =-N=\n\u003e \u003e     One field per line, numbering each field.\n\u003e \u003e =-n=\n\u003e \u003e     Suppress newline.\n\u003e \u003e =-O=\n\u003e \u003e     Output in octal.\n\u003e \u003e =-o file=\n\u003e \u003e     Write to file instead of standard output.\n\u003e \u003e =-q=\n\u003e \u003e     \"Quiet mode:\" redirect output to `/dev/null` if not to a file.\n\u003e \u003e =-r=\n\u003e \u003e     Print every string that matches each regular expression. Regular expressions cannot contain `+` or `*` modifiers.\n\u003e \u003e =-S voice=\n\u003e \u003e     Send to speaker, having the given voice say it. If voice is a null string, use the default voice.\n\u003e \u003e =-s char=\n\u003e \u003e     Separate fields with char, default space.\n\u003e \u003e =-t=\n\u003e \u003e     Separate fields with tabs.\n\u003e \u003e =-u=\n\u003e \u003e     Convert lowercase to uppercase. With `-B`, output in uppercase letters for base \u003e 10.\n\u003e \u003e =-V=\n\u003e \u003e     Strip non-printing characters.\n\u003e \u003e =-v=\n\u003e \u003e     Make non-printing characters visible.\n\u003e \u003e =-w=\n\u003e \u003e     If `-L` is given, word wrap instead of character wrap. Otherwise, ignored.\n\u003e \u003e =-X=\n\u003e \u003e     Output in uppercase hexadecimal.\n\u003e \u003e =-x=\n\u003e \u003e     Output in lowercase hexadecimal.\n\u003e \n\u003e Test for everyone: write this echo in as little code as possible. C or rc is permitted. The rules:\n\u003e \n\u003e - for C: either Standard C (no other libraries) or only libc (no other Plan 9 libraries)\n\u003e - for rc: only use programs in the core Plan 9 distribution - no programs that I have to get myself\n\u003e - match the behavior EXACTLY as above\n\u003e - shortest code and fastest run time wins\n\u003e \n\u003e Winner gets something cool.\n\n\n\"_Oh ho_,\" said I, \"_A challenge!_\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forc%2Fsecho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forc%2Fsecho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forc%2Fsecho/lists"}