При использовании оболочки zsh
или bash
используйте параметр -s для встроенной оболочки read
, чтобы считать строку с терминального устройства без ее повторения.
IFS= read -rs VARIABLE < /dev/tty
Затем вы можете использовать какое-нибудь необычное перенаправление, чтобы использовать переменную в качестве стандартного ввода.
sha1pass <<<"$VARIABLE"
Если кто-то запустит ps
, все, что он увидит, это «sha1pass».
Это предполагает, что sha1pass
считывает пароль со стандартного ввода (в одну строку, игнорируя разделитель строк ), если не задан аргумент.
это не sed, но вы можете использовать Miller(https://github.com/johnkerl/miller)и запустить
<input mlr --csv -N unsparsify then cut -x -f 2,4
иметь
this,a,string,containing,multiple
lines,string,numb3rs,and,w0rds
awk '{ split($0,a,","); delete a[4]; delete a[2]; for (i=1;i<=length(a); i++){ if(a[i]!="") printf "%s,", a[i] }; printf "\n";}' inputfile
Этот второй не работает, несмотря на эту строку вman gawk
:
Assigning a value to an existing field causes the whole record to be rebuilt when $0 is referenced. Similarly, assigning a value to $0 causes the record to be resplit, creating new values for the fields.
gawk 'BEGIN{ FS=","; OFS="," }{ $2=""; $4=""; a=$0; $0=a; print $0 }' inputfile
РЕДАКТИРОВАТЬ :Вышеупомянутое не работает из-за FS и gow awk обрабатывает их, и поэтому это работает:
gawk 'BEGIN{ FS=","; OFS="," }{ gsub(FS $2,""); gsub(FS $4,""); print $0 }'
выход:
this,a,test,containing,multiple
lines,string,with,and,w0rds