X



linuxの基本的な質問していい?
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:07:08.183ID:fzwJvThra
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行のコマンドにまとめることってできる?
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:08:39.379ID:fzwJvThra
2回に分けるってのは行の選別→列の取り出し
grepで
c=4 d=5
c=8 d=9
c=4 d=10
としてawkで
c=4
c=8
c=4
とする

1行で書く方法が知りたいです
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:08:54.009ID:FSumjIyH0
スペースを改行に変換して
c=を含む行のみ残すだけじゃん
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:10:20.935ID:FSumjIyH0
cat text.txt | grep c= | cut -d ' ' -f 1
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:10:32.602ID:fzwJvThra
>>3
スペースを改行に変換って d=... の部分を消すって事です?
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:10:42.965ID:FSumjIyH0
cutコマンドとか久しく使ってないからオプション正しいかわかんねぇわ
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:11:03.031ID:fzwJvThra
>>4
cutコマンドてのがあるのね!ありがとう
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:11:24.389ID:FSumjIyH0
>>5
c=がニ列目に来ることがあるのかと思ったわ
普通に改行に変換はいらねぇわ
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:11:28.651ID:fzwJvThra
その程度なら調べられるので助かるw
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:11:35.496ID:QJxW4DPi0
grep ^c | awk '{print $1}'
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:12:51.787ID:Thu4RhHK0
;で区切って1行にすれば良い
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:13:00.824ID:FSumjIyH0
テキスト加工でawkは最終兵器感ある
awk使うならpython使えみたいな
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:13:29.578ID:fzwJvThra
あ~そっか
これでもa,bの行は勝手に捨てられるのか
余計なことしなくてよかった
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:14:21.810ID:fzwJvThra
>>12
初心者だからその場に1行で書けるawkで練習してるけど
やることが小難しくなるとそうなるのかな
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:16:33.500ID:QJxW4DPi0
cutだとスペースとtabが混在してると面倒だけど
awkなら気にせずシンプルに処理できる
sedをパイプの間に挟む方法もアリ
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:16:54.184ID:FSumjIyH0
>>14
その場に一行→sed grepでなんとかする
こりゃawkかperl呼ばなきゃ無理だなぁ→もうpythonにすっか or 真面目にシェルスクリプト書く
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:17:21.854ID:FSumjIyH0
>>15
確かに
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:19:36.281ID:fzwJvThra
なるほど…
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/18(金) 00:27:15.600ID:QJxW4DPi0
awk使わないならcutは"d"で区切るかなぁ
grep ^c | cut -d "d" -f 1 | sed -e 's/[\ \t]*//'
awkの方がずっと楽でしょ?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況