[過去ログ] シェルスクリプト総合 その27 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
133
(3): 名無しさん@お腹いっぱい。 [sage] 2018/05/26(土) 04:09:24.19 AAS
お知恵お借りしたいです。

awk '($3 !~ /ここにパイプ区切りで記述したい/) && ($4 ~ /01/)' output.txt

上記のawkで条件に当てはまるファイルを絞り込みたいのですが
その1 別ファイルからのawkの結果を $aaa に設定してある
その2 $aaa は複数列の出力なので set コマンドにて位置パラメータに分けてある
その3 各変数を展開して文字列としてパイプで区切ってawkを使いたい。

以上のようなことをやってみたのですがどうもうまく行きません。
また、違うやり方もあるようでしたらご教示いただけるとありがたいです。
よろしくお願いします。
145
(1): 133 [sage] 2018/05/26(土) 11:49:32.72 AAS
そういう場合はパイプって言わないんですか。失礼しました。
正規表現でつかう or の役割を hoge fuga の間には挟みたいのです。
149: 133 [sage] 2018/05/26(土) 12:32:36.46 AAS
シェルスクリプト内で自動で行いたい旨を
書き損じておりました。
cat ZZZ.txt |grep XXX
hoge
fuga

から
awk '($3 !~ /hoge|fuga|neko/) && ($4 ~ /01/)' output.txt
としたいのです。

>>146
146(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/26(土) 12:01:23.51 AAS
>>145

>>136
>$ cat ZZZ.txt | grep XXX | tr '\n' '|' | sed 's/|$//1'
>↑こういうので行けるけど。違うでしょ?
って教えてくれてるやん。「違わない」「それです」でいいんじゃないの?それが違うならどう違うって言うべきかと(どうみても違わないとしか思えないけど)
質問自体がアレだが自分の言いたいことをうまく説明できないのはいいとして、応えてくれてる人の言ってることがわからない/それに応えないのはアレだな
>$ cat ZZZ.txt | grep XXX | tr '\n' '|' | sed 's/|$//1'
でまさしく狙い通りの出力がされるのですが>>133のawkのパターン部にどうかけば同じ文字列が出せるかわかりません
153: 133 [sage] 2018/05/26(土) 13:37:00.34 AAS
みなさん申し訳ありません
>>150
150(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/26(土) 12:38:10.49 AAS
awk の文はただの文字列でしかない
awk '($3 !~ /'"$aaa"'/) && ($4 ~ /01/)' output.txt
でも、
awk "(\$3 !~ /${aaa}/) && (\$4 ~ /01/)" output.txt
でも(他にエスケープ必要なのあるかな?)、
普通にシェル変数を(文字列内に)展開するのと変わらんぞ
のレスを見てクォートをよ〜く見なおしたら動きました。
初心者のたわごとに付きあわせてしまい申し訳ありませんでした。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s