次のサンプル/etc/passwdファイルがあります。
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
ホームフォルダを持つすべてのユーザーを一覧表示しようとしています/home/
。
私は書いた
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
e.txtはここにコピーしたテキストです。
バックスラッシュをエスケープ文字として使用するのに問題があることはわかっていますが、コマンドの1行に表示できるようにどのように修正しますか?
ベストアンサー1
/
エスケープを回避するには、正規表現の代わりに引用符を使用できます/
。
awk -F: '$6 ~ "^/home/" {print $1}' ~/Desktop/e.txt
これによりawk
、しばしば{if (foo) ... }
justに単純化できますfoo {...}
。