04 maggio, 2019

Modi diversi per utenti diversi


È in corso un dibattito con due amici, PLG e AG, sui Massimi Sistemi, Windows e Linux. I pareri sono molto diversi, sto raccogliendo materiale, ma non trattenete il respiro, andrà per le lunghe. Anche perché c'è anche Android. E temo l'irruzione di iOS (sssht!).

Io non voglio intromettermi a gamba tesa, anzi un pochino (solo un po', nèh!). Una cosa recente, piccola, quasi trascurabile ma illustra --imho-- come agiscono gli utenti tipici dei due OS.

Ci viene richiesto di modificare una scritta inserendo uno spazio tra ogni carattere, così:

$ echo stringa da spaziare | inssp
s t r i n g a   d a   s p a z i a r e
$


Invece di aprire un editor e scrivere con gli spazi la stringa (o inserire gli spazi se la stringa già c'è con un editor) il linaro (it's me) sa che c'è sed e si costruisce uno script, questo:

#!/bin/bash
sed 's/\(.\{1\}\)/\1 /g;s/ $//'


Confessione: non l'ho scritto io; l'ho capiato, qui, dove viene anche spiegato (è particolare, meno comune di quelli usuali).

La stringa risultato dev'essere selezionata e copiata nella clipboard con Maiusc-Ctrl-C. Ma c'è un modo più semplice, ho lo script _k:

#!/bin/bash
xclip -f -selection clipboard


Per cui, per avere direttamente la stringa nella clipboard pronta per l'inserimento il comando diventa:

$ echo stringa da spaziare | inssp | _k
s t r i n g a   d a   s p a z i a r e
$


(sì, lo so che non si vede, se del caso provate, xclip è da installare).

Ha senso, ovviamente, se il testo da spaziare supera una certa dimensione, per esempio se il testo è nel file dati:

$ cat dati | inssp | _k
u n o
d u e
t e r z a   r i g a
q u a t t r o
$


In alternativa a _k posso reindirizzare l'output con > out.txt (visto che mi adeguo alle usanze di Windows e uso l'estensione?).

Questa procedura vale ovviamente solo per Linux, in Windows non ho sed ma niente panico (cit.) lo script lo scrivo con Python, così (insspy):

#:/usr/bin/python3

import sys

f = sys.stdin
st = f.readline().strip()

stsp = ''
for c in st:
    stsp += c + ' '
print(stsp.rstrip())


Facile vero? Funziona come lo script bash e funziona anche con Windows.

Quindi i due OS sono equivalenti? Non esattamente, gli utenti Windows sono molto meno disponibili a usare il terminale, vogliono finestre, bottoni e chissà quali altri widgets. Si usa ancora "widget" o sono solo più io? Anche la Wiki, lei non mi delude mai.

🔴

Nessun commento:

Posta un commento