Saya memisahkan output dari id
untuk menyediakan daftar grup yang lebih mudah dibaca dari grup di mana pengguna menjadi anggota:
id roaima | sed 's/,/\n\t/g'
uid=1001(roaima) gid=1001(roaima) groups=1001(roaima)
24(cdrom)
25(floppy)
...
822413650 (international (uk) location)
Saya ingin memisahkan nomor grup dari nama kurung sehingga saya memperluas ekspresi seperti ini
id roaima | sed -e 's/,/\n\t/g' -e '2,$s/(/ (/'
Namun, ini tidak bertindak seperti yang saya harapkan pada awalnya. Ekspresi kedua tampaknya tidak berpengaruh.
Sebagai gantinya, untuk mendapatkan hasil yang saya inginkan, saya perlu menjalankan dua sed
perintah terpisah , seperti ini:
id roaima | sed -e 's/,/\n\t/g' | sed '2,$s/(/ (/'
uid=1001(roaima) gid=1001(roaima) groups=1001(roaima)
24 (cdrom)
25 (floppy)
...
822413650 (international (uk) location)
Mengapa saya perlu dua sed
perintah dalam pipa daripada satu dengan banyak instruksi? Atau jika saya bisa melakukan ini dengan satu sed
, bagaimana saya melakukannya?
Apa yang saya terutama inginkan adalah memiliki ruang tunggal antara nilai UID / GID dan nama kurung untuk setiap item (termasuk UID dan GID di baris pertama), tetapi peringatannya adalah bahwa dalam data nyata saya, saya dapat memiliki grup mengandung tanda kurung dalam nama mereka dan aku tidak ingin nama itu hancur.
-vRS=,
atau-054
bisa membantu.