linuxの基本的な質問していい?
■ このスレッドは過去ログ倉庫に格納されています
grepとawkを使って次の操作をするときの簡単な書き方教えて
(元ファイル)------------------------------------
a=2 b=3
c=4 d=5
a=4 b=7
c=8 d=9
a=1 b=9
c=4 d=10
…(a,b行のあとにc,d行がくることの繰り返し)
------------------------------------------------
で、c=?だけを順に出力したい
c=4
c=8
c=4
…
てな感じ
2回に分ければ僕でもできるんだけど、1行のコマンドにまとめることってできる? 2回に分けるってのは行の選別→列の取り出し
grepで
c=4 d=5
c=8 d=9
c=4 d=10
としてawkで
c=4
c=8
c=4
とする
1行で書く方法が知りたいです スペースを改行に変換して
c=を含む行のみ残すだけじゃん cat text.txt | grep c= | cut -d ' ' -f 1 >>3
スペースを改行に変換って d=... の部分を消すって事です? cutコマンドとか久しく使ってないからオプション正しいかわかんねぇわ >>5
c=がニ列目に来ることがあるのかと思ったわ
普通に改行に変換はいらねぇわ grep ^c | awk '{print $1}' テキスト加工でawkは最終兵器感ある
awk使うならpython使えみたいな あ~そっか
これでもa,bの行は勝手に捨てられるのか
余計なことしなくてよかった >>12
初心者だからその場に1行で書けるawkで練習してるけど
やることが小難しくなるとそうなるのかな cutだとスペースとtabが混在してると面倒だけど
awkなら気にせずシンプルに処理できる
sedをパイプの間に挟む方法もアリ >>14
その場に一行→sed grepでなんとかする
こりゃawkかperl呼ばなきゃ無理だなぁ→もうpythonにすっか or 真面目にシェルスクリプト書く awk使わないならcutは"d"で区切るかなぁ
grep ^c | cut -d "d" -f 1 | sed -e 's/[\ \t]*//'
awkの方がずっと楽でしょ? ■ このスレッドは過去ログ倉庫に格納されています