FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2009-07-15

[]メモ 01:13 メモ - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - メモ - FreeBSD初心者運用日記 メモ - FreeBSD初心者運用日記 のブックマークコメント

2chから抜粋

25 名前: 名無しさん@お腹いっぱい。 投稿日: 2009/07/10(金) 00:53:20 
質問です。 

以下のような仮のhogeコマンドを実行すると、 
$ hoge -12 hoge.dat foo.dat bar.dat 
パラメタで指定したファイル(hoge.dat、foo.dat、bar.dat)の12行目だけをリストするようなコマンドはないでしょうか? 

よろしくお願いします。 
 
26 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2009/07/10(金) 01:14:30  
for i in hoge.dat foo.dat bar.dat; do sed -n 12p "$i"; done  
 
33 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2009/07/10(金) 10:51:08 
>>25 
awk 'FNR==12{print}' 

が単純でエレガントでは。パイプやループが要らないし。 
 
 
34 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2009/07/10(金) 11:02:28 
あ、シェルにするには、 

#!/bin/sh 

n=$1 
shift 
awk "FNR==-($n){print}" "$@" 


ね。-12とかの引数をマイナスの数とみなして、awkの中で符合反転してる。 
 

[]grepコマンドで、単語を検索する 01:10 grepコマンドで、単語を検索する - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - grepコマンドで、単語を検索する - FreeBSD初心者運用日記 grepコマンドで、単語を検索する - FreeBSD初心者運用日記 のブックマークコメント

2chから抜粋

300 名前: 名無しさん@お腹いっぱい。 投稿日: 2009/07/10(金) 00:50:36 
grepで単語を指定して検索するにはどうしたらいいですか?(viで\<keyword\>で検索するのと同じ感じで検索したいです) 

たとえば、以下のファイルがあるとします。 
$ cat aaa.dat 
hoge 
hogefoobar 
hoge foo bar 
で、このファイルから単語としてのhogeが存在する行(つまり、1行目と3行目)だけをgrepしたい。 

よろしくご教示お願いします。 

301 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2009/07/10(金) 00:58:07 
egrep で \bhoge\b 

302 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2009/07/10(金) 00:58:29 
-w 
 |