我想將ls -1
的結果加入到一行中,並用我想要的任何內容劃分它。 函數
我能夠使用任何標準的Linux命令來實現這一目標嗎? spa
ls
鏈接到管道時產生一個列輸出,所以-1
是多餘的。 命令行
這是使用內置join
函數的另外一個perl答案,它不會留下尾隨分隔符: code
ls | perl -F'\n' -0777 -anE 'say join ",", @F'
隱藏的-0777
使perl在運行程序以前讀取全部輸入。 ci
sed替代品,不留下尾隨分隔符 字符串
ls | sed '$!s/$/,/' | tr -d '\n'
我以爲這個很棒 awk
ls -1 | awk 'ORS=","'
ORS是「輸出記錄分隔符」,因此如今你的行將用逗號鏈接。 sed
此命令適用於PERL粉絲: perl
ls -1 | perl -l40pe0
這裏40是空間的八進制ascii代碼。 程序
-p將逐行處理並打印
-l將負責用咱們提供的ascii字符替換尾部\\ n。
-e是告知PERL咱們正在執行命令行。
0表示實際上沒有執行命令。
perl -e0與perl -e'相同
不要從新發明輪子。
ls -m
它正是如此。
ls
有選項-m
用", "
逗號和空格分隔輸出。
ls -m | tr -d ' ' | tr ',' ';'
將此結果傳遞給tr
以刪除空格或逗號將容許您再次將結果傳遞給tr
以替換分隔符。
在個人例子我更換分隔符,
用分隔符;
替換;
使用您喜歡的任何一個字符分隔符 ,由於tr只會考慮您做爲參數傳入的字符串中的第一個字符。