[{"data":1,"prerenderedAt":282},["ShallowReactive",2],{"project-27794188":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":40,"post_text":43,"what":44,"said":75,"maker_in_thread":150,"shape":153,"grid":157,"attempts":246,"same_week":247,"maker_shows":31,"maker_hidden":275,"reader_version":276,"card":277},"27794188","Hck","a fast and flexible cut-like tool","title","Show HN: Hck – a fast and flexible cut-like tool","https:\u002F\u002Fgithub.com\u002Fsstadick\u002Fhck","github.com","totalperspectiv",1625932013,2021,151,34,327,2533,13,"notable","dev_tools","command line text processing","cli",[24,25,26,27],"cut alternative","command line","text processing","rust","debated",0,{"positive":31,"neutral":32,"mixed":29,"critical":31},2,4,8,{"idea":35,"performance":36,"docs":37,"design":39},{"positive":31,"critical":29},{"positive":29,"critical":29},{"positive":29,"critical":38},1,{"positive":29,"critical":38},[41,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,42,29,29,29,29,41,41,29,29,38,38,29,42,29,41],3,5,null,{"problem":45,"audience":43,"pricing":43,"motivation":56,"time_to_build":43,"stack":61,"openness":73,"stage":74,"team_size":74},{"value":46,"source":47,"evidence":48},"Extracting fields from text on the command line faster and more flexibly than cut","inferred",[49,52],{"id":50,"by":11,"text":51},"27795553","It was indeed an great exercise! Part of the motivation for me was also performance oriented. I should add some Perl one liners to the benchmarks to see where they land as well.…",{"id":53,"by":54,"text":55},"27794839","valbaca","> hck is a shortening of hack, a rougher form of cut.",{"value":57,"source":58,"evidence":59},"Performance and exercise in writing a cut-like tool","maker",[60],{"id":50,"by":11,"text":51},[62],{"value":63,"source":47,"evidence":64},"Rust",[65,69],{"id":66,"by":67,"text":68},"27795152","bilalhusain","It is interesting to note how it compares to \"choose\" (also in Rust) in the benchmarks. single character ``` hck 1.494 ± 0.026s hck (no-mmap) 1.735 ± 0.004s choose 4.597 ± 0.016s…",{"id":70,"by":71,"text":72},"27797678","technological","Nice one op. It’s mostly due to my lack of knowledge of rust but the code is not easy to read unlike golang. Does anyone feel the same ? (between nothing to do with how op wrote…","open_source","unknown",{"praise":76,"objections":93,"requests":109,"questions":118,"alternatives":123},[77,82],{"value":78,"source":79,"evidence":80},"Faster than alternatives like choose in benchmarks","commenter",[81],{"id":66,"by":67,"text":68},{"value":83,"source":79,"evidence":84},"Support for compressed files and multiple delimiters",[85,89],{"id":86,"by":87,"text":88},"27798195","asicsp","I saw about `hck` recently on twitter, was impressed to see support for compressed files. From the current todo list, I hope complement is implemented for sure. I see Negative…",{"id":90,"by":91,"text":92},"27795208","queuebert","Yay, no more piping multiple cuts when you have multiple delimiters.",[94,101],{"value":95,"source":79,"evidence":96},"README assumes readers know what cut is",[97],{"id":98,"by":99,"text":100},"27798301","rendall","The README and description should not assume the reader knows what `cut` is or what it's used for. Maybe reference it and then ELI5",{"value":102,"source":79,"evidence":103},"Code is hard to read for non-Rust developers",[104,105],{"id":70,"by":71,"text":72},{"id":106,"by":107,"text":108},"27797993","tyingq","I don't think even Rust fans would argue that. Rust has roughly 2x the amount of reserved words, more operators, and so on. There's a larger basic set of things to learn before…",[110,114],{"value":111,"source":79,"evidence":112},"Support for complement and negative indexes",[113],{"id":86,"by":87,"text":88},{"value":115,"source":58,"evidence":116},"Perl one-liner benchmark comparison",[117],{"id":50,"by":11,"text":51},[119],{"value":120,"source":79,"evidence":121},"Why single-character delimiter case is faster, and whether the regex constraint affects it",[122],{"id":66,"by":67,"text":68},[124,134,138,145],{"value":125,"source":79,"evidence":126},"Perl one-liners",[127,131],{"id":128,"by":129,"text":130},"27794976","lillesvin","I wrote something similar (but necet really finished it), called 'gut', in Go a few years back. Funny thing is, that I literally never use it. I thought splitting on regexes and…",{"id":132,"by":107,"text":133},"27796884","Not declarative, but Perl can do something like that. Delimeters\u002FRegex: ``` $ perl -ne '($name,$pass,$uid,$gid,$therest)=split(\u002F:\u002F);print \"$name $gid\\n\"' \u002Fetc\u002Fpasswd root 0…",{"value":135,"source":79,"evidence":136},"choose",[137],{"id":66,"by":67,"text":68},{"value":139,"source":79,"evidence":140},"Modern coreutils alternatives like ripgrep, fd, bat",[141],{"id":142,"by":143,"text":144},"27794934","rashil2000","Love seeing these modern alternatives to coreutils! Ripgrep, fd, hyperfine, bat, exa, bottom, gdu, wc, sd, hexyl... Yet to find a GNU 'tr' alternative though",{"value":146,"source":79,"evidence":147},"awk",[148,149],{"id":86,"by":87,"text":88},{"id":50,"by":11,"text":51},{"comments":38,"answered":29,"key":151},[152],{"id":50,"text":51},{"commenters":154,"max_depth":32,"maker_replies":38,"first_comment_mins":155,"lifespan_hours":156},28,75,52,[158,160,164,168,171,173,175,178,181,184,187,188,191,193,195,198,201,203,206,210,214,217,218,221,223,225,226,229,232,235,238,239,240,244],[128,29,41,159,129,29],"project\u002Fneutral\u002Fidea",[161,29,29,162,163,29],"27795465","other\u002Fneutral\u002Fnone","mongol",[165,29,29,166,167,29],"27795508","commenter\u002Fneutral\u002Fnone","c54",[169,29,29,166,170,29],"27795744","atsaloli",[172,29,29,166,87,29],"27798155",[50,29,29,174,11,38],"maker\u002Fneutral\u002Fperformance",[176,29,29,162,177,29],"27796094","FractalHQ",[179,29,29,162,180,29],"27796514","andrewzah",[182,29,29,162,183,29],"27796867","fragmede",[185,29,29,162,186,29],"27796937","JulianWasTaken",[142,38,29,162,143,29],[189,38,29,166,190,29],"27795155","kristopolous",[192,38,29,166,143,29],"27795177",[194,38,29,166,190,29],"27797172",[196,38,29,166,197,29],"27796748","sieste",[199,38,29,166,200,29],"27796917","basetensucks",[202,38,29,166,107,29],"27796799",[204,38,29,162,205,29],"27798212","ComputerGuru",[207,38,29,208,209,29],"27814342","other\u002Fpositive\u002Fnone","marto1",[211,31,42,212,213,29],"27795195","project\u002Fpositive\u002Fidea","kitd",[215,31,29,166,216,29],"27796167","twic",[132,31,29,166,107,29],[219,31,29,166,220,29],"27798729","Ultimatt",[222,31,29,166,213,29],"27803281",[66,41,41,224,67,29],"project\u002Fneutral\u002Fperformance",[86,32,41,159,87,29],[227,42,29,162,228,29],"27796200","visarga",[230,42,29,162,231,29],"27800309","nerdponx",[98,233,38,234,99,29],6,"project\u002Fcritical\u002Fdocs",[70,236,38,237,71,29],7,"project\u002Fcritical\u002Fdesign",[106,236,29,166,107,29],[90,33,42,212,91,29],[241,242,29,162,243,29],"27794811",9,"toastal",[53,242,41,245,54,29],"project\u002Fneutral\u002Fdocs",[],[248,253,257,261,266,271],{"id":249,"name":250,"points":251,"category":252},"27803146","WiFi Card",769,"productivity",{"id":254,"name":255,"points":256,"category":252},"27807850","Obsidian for Mobile",760,{"id":258,"name":259,"points":260,"category":20},"27785323","Earthly",223,{"id":262,"name":263,"points":264,"category":265},"27806952","gba-remote-play",165,"games",{"id":267,"name":268,"points":269,"category":270},"27819764","Fakeflix",153,"web_saas",{"id":272,"name":273,"points":274,"category":20},"27799135","puppy-browser",144,false,"v2",{"id":278,"name":5,"line":6,"ai":275,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":279,"maker":11,"domain":10,"tier":19,"attempts":29,"strip":280,"url":9,"mix":281,"praise":78,"objection":95,"sub":21},27794188,[24,25,26,27],"3000000000000000000500003300110503",[31,32,29,31],1793991030488]