2016-07-12 15 views
0

複数行のスクリプトを1行に変換してevalコマンドで解析する簡単で簡単な方法はありますか?bashの複数行を1行に変換する

getent group | cut -f3 -d":" | sort -n | uniq -c |\ 
while read x ; do 
    [ -z "${x}" ] && break 
    set - $x  ; if [ $1 -gt 1 ]; then 
     grps=`getent group | nawk -F: '($3 == n) { print $1 }' n=$2 | xargs`  ;  echo "Duplicate GID ($2): ${grps}" ;  fi  done 
+2

すなわち

は通常、 'eval'を避けることをお勧めします。 (一部の人は['eval'を"悪のスペルミス "とみなしている](http://mywiki.wooledge.org/BashFAQ/048))。 'eval'が良い解決策のように思えるようにしようとしていますか? – John1024

+0

@johnええと、この行は私のtxtファイルの一つに含まれています。私のtxtファイルは、 'read line'を使ってこのコマンドを取得した後、evalを解析してコマンドの結果を取得します。 – Ctc

答えて

0
one_line=`cat your_script_file | sed ":a s/[\]$//; N; s/[\]$//; s/\n/ /; t a ;"` 
echo $one_line 
関連する問題