[{"data":1,"prerenderedAt":520},["ShallowReactive",2],{"project-31726472":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":43,"post_text":46,"what":47,"said":74,"maker_in_thread":176,"shape":188,"grid":192,"attempts":481,"same_week":482,"maker_shows":42,"maker_hidden":512,"reader_version":513,"card":514},"31726472","Tuc","When cut doesn’t cut it","title","Show HN: Tuc – When cut doesn’t cut it","https:\u002F\u002Fgithub.com\u002Friquito\u002Ftuc","github.com","riquito",1655132158,2022,241,115,204,2570,8,"notable","dev_tools","command line text utility","cli",[24,25,26,27,28],"cut","command line","text processing","delimiter","regex","mixed",0.398,{"positive":32,"neutral":33,"mixed":34,"critical":35},15,18,0,4,37,{"idea":38,"design":41},{"positive":39,"critical":40},9,2,{"positive":34,"critical":42},1,[44,34,34,44,34,42,34,34,34,34,34,34,34,34,34,34,34,34,34,45,44,45,34,35,34,34,34,34,34,44,45,45,45,45,45,45,44,45,44,44],5,3,"Announcing `tuc`, a utility similar to coreutils `cut`, but more powerful.\nIt allows to split text or bytes into parts and reassemble them in any order.\n\nI always found `cut` very practical for some tasks where `sed` or `awk` were overkill or awkward to use, but I also felt the need for more features.\n\nSome key differences from `cut`:\n- parts can be referenced by negative indexes\n- delimiters can be any number of characters long, or match a regex\n- can split text into lines, and reassemble them",{"problem":48,"audience":54,"pricing":54,"motivation":55,"time_to_build":54,"stack":59,"openness":72,"stage":73,"team_size":73},{"value":49,"source":50,"evidence":51},"cut lacks negative indexes, multi-character or regex delimiters, and line-based splitting","maker",[52],{"id":53},"post",null,{"value":56,"source":50,"evidence":57},"Wanted the practical features of cut with more power, where sed or awk were overkill",[58],{"id":53},[60],{"value":61,"source":62,"evidence":63},"Rust","inferred",[64,68],{"id":65,"by":66,"text":67},"31728052","Aardwolf","> cargo install tuc Slightly off topic question about this: in Linux, are rust programs always installed like this, or should these also be made available in the regular package…",{"id":69,"by":70,"text":71},"31734288","sitkack","Install rustup from https:\u002F\u002Frustup.rs\u002F ``` cargo install broot exa miniserve ripgrep tuc xh xsv zellij ``` Cargo is the package manager you are looking for.","open_source","unknown",{"praise":75,"objections":110,"requests":129,"questions":137,"alternatives":149},[76,92,103],{"value":77,"source":78,"evidence":79},"Negative indexes and unlimited-length delimiters fix cut's limitations","commenter",[80,84,88],{"id":81,"by":82,"text":83},"31727083","bitcraft","This is great! I always felt like cut was really handicapped by lack of negative indexes.",{"id":85,"by":86,"text":87},"31727286","overlordalex","Just want to say thank you for the unlimited delimiters - this was something that always limited my usage of cut so just this feature alone makes tuc worth it",{"id":89,"by":90,"text":91},"31727653","mmastrac","This is an incredibly useful improvement over cut, thank you. The mental distance from cut to awk\u002Fsed is often just too high and having a more useful utility will drastically…",{"value":93,"source":78,"evidence":94},"Regex delimiter support, including -e option",[95,99],{"id":96,"by":97,"text":98},"31727887","ur-whale","Triple thumbs up for -e Never understood why that was never added to cut in the first place.",{"id":100,"by":101,"text":102},"31731513","linsomniac","This is the \"cut\" I've always wanted!",{"value":104,"source":78,"evidence":105},"Compressing repeated delimiters helps with aligned column output",[106],{"id":107,"by":108,"text":109},"31728686","gleenn","This is awesome. Especially the ability to compress delimiters. I can't tell you how many times I want to grab a couple fields from the output of another command but can't get…",[111,122],{"value":112,"source":78,"evidence":113},"Discussion of Rust tools replacing core utilities and portability concerns",[114,118],{"id":115,"by":116,"text":117},"31727712","layer8","The problem I see is that I don’t see those consolidating anytime soon into a new set of ubiquitous “core” utilities that can be expected to be available everywhere.",{"id":119,"by":120,"text":121},"31728210","michaelmior","That doesn't solve the \"available everywhere\" problem. It potentially would make the tools easier to install on Debian-based systems, if you have root access. I'm not sure any…",{"value":123,"source":78,"evidence":124},"Whitespace-run splitting still needs a flag rather than being default",[125],{"id":126,"by":127,"text":128},"31731897","donio","Doesn't seem to fix the #1 thing missing from cut: an easy syntax for splitting on whitespace sequences (rather than a single space), like awk does by default. (I see that it…",[130],{"value":131,"source":78,"evidence":132},"Support for quoted and escaped fields such as CSV",[133],{"id":134,"by":135,"text":136},"31731700","nijave","It'd be nice if it could split and support escapes and quoted strings. I often run into issues with things like csv where fields might be quoted or quoted strings where quotes…",[138],{"value":139,"source":78,"evidence":140},"How does tuc differ from cut and what does splitting text into lines mean",[141,145],{"id":142,"by":143,"text":144},"31727302","masklinn","Seems similar in intent to choose (https:\u002F\u002Fgithub.com\u002Ftheryangeary\u002Fchoose) as a cut which doesn't suck. The features outlined are very close, I just don't understand what \"can…",{"id":146,"by":147,"text":148},"31731579","I_complete_me","Ref. your $ tuc -d ' ' -f 2 \u003C input how is different from $ cut -d ' ' -f 2 input ?",[150,154,165,169],{"value":151,"source":78,"evidence":152},"choose",[153],{"id":142,"by":143,"text":144},{"value":155,"source":78,"evidence":156},"hck",[157,161],{"id":158,"by":159,"text":160},"31734320","asicsp","Nice, especially the format output. See also: * hck (https:\u002F\u002Fgithub.com\u002Fsstadick\u002Fhck) - close to drop in replacement for cut that can use a regex delimiter instead of a fixed…",{"id":162,"by":163,"text":164},"31728461","totalperspectiv","It's also very similar to my tool hck (https:\u002F\u002Fgithub.com\u002Fsstadick\u002Fhck) which is in turn similar to choose, just faster, supports compression, and supports column selection via…",{"value":166,"source":78,"evidence":167},"rcut",[168],{"id":158,"by":159,"text":160},{"value":170,"source":78,"evidence":171},"lam, jot, rs",[172],{"id":173,"by":174,"text":175},"31729543","emmelaich","Seems a bit of functionality overlap with lam\u002Fjot\u002Frs; have you looked at those? They're from BSD originally. Included in macos, and in Linux distros as bsd-utils.",{"comments":177,"answered":44,"key":178},6,[179,182,185],{"id":180,"text":181},"31727599","> I just don't understand what \"can split text into lines\" is, do you mean that the selected fields can be split into lines? Good question, I struggle to word it properly, any…",{"id":183,"text":184},"31732657","> Ref. your $ tuc -d ' ' -f 2 \u003C input how is different from $ cut -d ' ' -f 2 input ? It's not. `tuc` is a superset of cut and in that particular example there's no difference.…",{"id":186,"text":187},"31748018","Don't worry, I was in good faith too, it's hard to convey some things sometime. I tried to answer masklinn's question with a simple example, didn't really think about whether it…",{"commenters":189,"max_depth":39,"maker_replies":177,"first_comment_mins":190,"lifespan_hours":191},73,45,63,[193,197,201,204,207,210,214,216,219,220,224,227,230,233,235,237,240,244,246,248,250,253,254,257,258,261,263,265,268,270,273,275,278,280,283,285,288,291,294,297,300,303,305,306,308,310,312,314,317,319,321,324,327,330,332,335,338,340,342,345,348,351,353,355,357,359,360,362,363,364,365,368,370,372,375,378,380,382,385,387,390,393,395,397,399,401,403,406,408,410,412,414,417,419,422,425,426,430,433,435,437,440,442,444,446,448,451,454,458,461,464,466,470,473,477],[194,34,44,195,196,34],"31728859","project\u002Fpositive\u002Fnone","ChicagoBoy11",[198,34,34,199,200,34],"31731869","other\u002Fneutral\u002Fnone","niccl",[202,34,34,199,203,34],"31732801","pdimitar",[205,34,34,199,206,34],"31733058","NegativeLatency",[208,34,34,199,209,34],"31733838","benhoyt",[211,34,34,212,213,34],"31762494","commenter\u002Fneutral\u002Fnone","jnordwick",[215,34,34,212,209,34],"31762554",[217,34,34,199,218,34],"31736331","btingle",[158,42,44,195,159,34],[221,40,44,222,223,34],"31727377","project\u002Fpositive\u002Fidea","shreve",[225,40,34,199,226,34],"31727455","carlhjerpe",[228,40,34,199,229,34],"31728022","hultner",[231,40,34,199,232,34],"31728535","tomjakubowski",[234,40,34,199,226,34],"31732053",[236,40,34,199,232,34],"31728530",[238,40,34,199,239,34],"31729139","krylon",[241,40,42,242,243,34],"31731968","project\u002Fcritical\u002Fdesign","apgwoz",[245,40,34,212,226,34],"31732034",[247,40,34,199,243,34],"31733300",[249,40,34,199,226,34],"31735737",[251,40,34,212,252,34],"31733870","mcronce",[115,40,34,199,116,34],[255,40,34,199,256,34],"31727873","humanwhosits",[119,40,34,212,120,34],[259,40,34,199,260,34],"31728387","jarbus",[262,40,34,199,232,34],"31728510",[264,40,34,199,260,34],"31728692",[266,40,34,199,267,34],"31728872","roey2009",[269,40,34,199,260,34],"31728954",[271,40,34,199,272,34],"31729065","homarp",[274,40,34,212,116,34],"31728992",[276,40,34,199,277,34],"31729012","throwamon",[279,40,34,212,120,34],"31729683",[281,40,34,199,282,34],"31730948","fragmede",[284,40,34,212,120,34],"31750372",[286,40,34,199,287,34],"31731586","moondev",[289,40,34,212,290,34],"31732515","PaulDavisThe1st",[292,40,34,212,293,34],"31732955","naniwaduni",[295,40,34,212,296,34],"31733120","_carbyau_",[298,40,34,212,299,34],"31733288","taftster",[301,40,34,199,302,34],"31734051","steveklabnik",[304,40,34,199,120,34],"31735626",[69,40,34,199,70,34],[307,40,34,212,120,34],"31735617",[309,40,34,212,70,34],"31744557",[311,40,34,212,120,34],"31750259",[313,40,34,212,70,34],"31762899",[315,40,34,199,316,34],"31734015","GuB-42",[318,40,34,199,302,34],"31734045",[320,40,34,199,239,34],"31729120",[322,40,34,199,323,34],"31732076","smartmic",[325,40,34,212,326,34],"31732497","hinkley",[328,40,34,212,329,34],"31732737","tambourine_man",[331,40,34,212,203,34],"31732809",[333,40,34,199,334,34],"31732375","jeppesen-io",[336,40,34,199,337,34],"31733431","memorable",[142,45,45,339,143,34],"project\u002Fneutral\u002Fidea",[180,45,34,341,11,42],"maker\u002Fneutral\u002Fdocs",[343,45,45,339,344,34],"31730717","forty",[346,45,44,222,347,34],"31732859","renewiltord",[349,45,34,212,350,34],"31733150","tyingq",[352,45,34,212,347,34],"31744753",[146,45,45,354,147,34],"maker\u002Fneutral\u002Fidea",[183,45,34,356,11,42],"project\u002Fneutral\u002Fnone",[358,45,34,212,147,34],"31745347",[186,45,34,212,11,42],[162,45,42,361,163,34],"project\u002Fcritical\u002Fidea",[107,35,44,222,108,34],[85,44,44,222,86,34],[65,177,34,199,66,34],[366,177,34,199,367,34],"31728198","elsjaako",[369,177,34,199,143,34],"31728317",[371,177,34,199,66,34],"31728525",[373,177,34,199,374,34],"31728640","ploxiln",[376,177,34,199,377,34],"31729079","mprovost",[379,177,34,199,374,34],"31729367",[381,177,34,199,143,34],"31728776",[383,177,34,199,384,34],"31729926","nickstinemates",[386,177,34,199,143,34],"31730562",[388,177,34,199,389,34],"31731699","speed_spread",[391,177,34,199,392,34],"31729021","db65edfc7996",[394,177,34,199,384,34],"31729909",[396,177,34,199,347,34],"31732866",[398,177,34,199,302,34],"31728558",[81,400,44,222,82,34],7,[402,400,45,339,350,34],"31727131",[404,400,45,339,405,34],"31727703","kseistrup",[407,400,45,356,116,34],"31727754",[409,400,45,339,405,34],"31727975",[411,400,34,199,116,34],"31728342",[413,400,34,212,405,34],"31729301",[415,400,45,339,416,34],"31727738","samwhiteUK",[418,400,45,339,377,34],"31728981",[420,400,45,339,421,34],"31728541","pimlottc",[423,400,45,339,424,34],"31729940","ratrocket",[89,18,44,222,90,34],[427,18,42,428,429,34],"31731972","project\u002Fcritical\u002Fnone","omoikane",[431,39,44,195,432,34],"31734293","mttjj",[134,434,45,339,135,34],10,[126,436,42,361,127,34],11,[438,436,45,339,439,34],"31731996","vultour",[441,436,45,339,127,34],"31732008",[443,436,34,339,11,42],"31732671",[96,445,44,222,97,34],12,[173,447,45,339,174,34],13,[449,447,34,450,11,42],"31730386","maker\u002Fneutral\u002Fnone",[452,447,45,356,453,34],"31731242","gpvos",[455,456,45,450,457,34],"31731602",14,"alex_hirner",[459,456,34,460,11,42],"31731804","project\u002Fneutral\u002Fexecution",[462,32,44,222,463,34],"31729066","seanw444",[100,465,44,222,101,34],16,[467,468,44,195,469,34],"31727955",17,"blackfede",[471,33,44,195,472,34],"31727518","matteo-biagetti",[474,475,44,195,476,34],"31731802",19,"nathants",[478,479,45,356,480,34],"31729123",20,"bradwood",[],[483,488,493,498,503,507],{"id":484,"name":485,"points":486,"category":487},"31710603","Vytal",313,"security_privacy",{"id":489,"name":490,"points":491,"category":492},"31755025","anonfriendly",306,"web_saas",{"id":494,"name":495,"points":496,"category":497},"31679811","Ory Kratos",290,"infrastructure",{"id":499,"name":500,"points":501,"category":502},"31724613","Animation Magic",238,"learning_science",{"id":504,"name":505,"points":506,"category":492},"31741018","My Side Project Rocks",220,{"id":508,"name":509,"points":510,"category":511},"31735754","Coquistt",191,"productivity",false,"v2",{"id":515,"name":5,"line":6,"ai":512,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":516,"top":18,"kw":517,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":518,"url":9,"mix":519,"praise":77,"objection":112,"sub":21},31726472,0.4,[24,25,26,27,28],"5005010000000000000353040000053333335355",[32,33,34,35],1794036621404]