我想創建一個簡單的正則表達式來匹配一些文件。該命令npm ls --dev --parseable
打印出一堆文件,例如:如何拆分,映射和加入Bash?
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/tough-cookie
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/tunnel-agent
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/rimraf
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/rimraf/node_modules/glob
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/rimraf/node_modules/glob/node_modules/inflight
/Users/chetcorcos/code/dev-tool/node_modules/fsevents/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy
我想回到一個字符串,它看起來是這樣的:
tough-cookie|tunnel-agent|rimraf|inflight|wrappy
爲了得到這個,我想「按換行符分割,映射到基本名稱,並用管道連接「。在JavaScript與Ramdajs,我想這樣是這樣的:
R.pipe(R.split('\n'), R.map(R.split('/')), R.map(R.nth(-1)), R.join('|'))
任何想法如何做這樣的事情在bash?做這件事的慣用方法是什麼?
一般 - 如果你想要一個班輪,而不是回答的重點是精確性和簡潔性,你應該在Code Golf而不是StackOverflow。 –
... short form:可以在bash中使用傳統的函數式編程原語,但需要自己構建它們;我們正在談論100行左右的庫代碼。 –
我明白了。我只是對在bash中完成此操作的正確方法感興趣。這些只是我習慣的那種看起來很直觀的語義。 – Chet