[過去ログ] 初心者の質問相談にやさしく答えるスレ Part13 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
214: 2020/09/21(月)21:39 ID:6Q0Z/Lw5(2/2) AAS
sed 版は行が偶数である必要があるので、基数でも構わないように awk 版。
seq 11 |tac |awk 'NR % 2 != 0 {line = $0; next}; {print $0"\n"line} END{if (NR % 2 != 0) print $0}'
215: 2020/09/21(月)23:40 ID:EG8dcfEz(1) AAS
xargs で、行列変換できるのでは?
a
b
c
a b c
216: 2020/09/22(火)02:18 ID:eMduSs75(1/2) AAS
>>212
例は2行単位のもの出しているけど、2行単位以外の複数行(3行とか4行との)単位でもやりたいのか?
217: 2020/09/22(火)02:22 ID:eMduSs75(2/2) AAS
か、が抜けていた
(3行とか4行とかの)単位
218(1): 2020/09/22(火)10:31 ID:9d2x2CDm(1) AAS
sedの基本は理解したが肝心の処理の流れが分からんわ
パターンスペースだのホールドスペースだの
処理過程の行を表示する方法はないのかしら
219: 2020/09/22(火)16:42 ID:iBWA2dV2(1) AAS
>>212
長くなれば配列使ってループで回す
seq 4 | xargs | awk '{print $3 "\n" $4 "\n" $1 "\n" $2}'
220: 2020/09/22(火)16:52 ID:6eqRg9Ey(1/3) AAS
自分ならスクリプト書いてwhile readしちゃうけどなあ
221(1): 2020/09/22(火)16:57 ID:6eqRg9Ey(2/3) AAS
ちなみにスクリプト書くのがえらいとは思ってない
仕事でシェル書ける?って聞かれたことあるけど当然あると答えるんだけど
パイプを使った簡単な方法を思いつかないとメンテが大変なスクリプトを残すことになる
まあ1行で書かれた難解なコマンドを解読するのも面倒なんだけどw
222: 2020/09/22(火)17:03 ID:6eqRg9Ey(3/3) AAS
>>218
自分が使ったわけではないけどsedsedつーのがあるらしい
自分は処理を想定して置換パターン考えるけど
思ってるように置換されないことはよくあって超テストしまくる
今はシェルスクリプト書くこと少ないんだけど
あーこれ過去に悩んだわってのは結構多く解決したあとに思い出す
223: 2020/09/22(火)19:23 ID:fv1Daqer(1) AAS
>>221
ワンライナーの方が保守性が低いだろうに
224: 2020/09/22(火)22:32 ID:3m3ag9H4(1) AAS
やっていることが複雑なプログラムは
結局何で書いても保守性は上がらない
225: 2020/09/23(水)01:48 ID:a9ugNS1V(1) AAS
可読性なら、Ruby
226(1): 2020/09/23(水)10:10 ID:Rsl28+Yj(1) AAS
パイソンかシーシャープでいいよ
227: 2020/09/23(水)12:05 ID:n3ZO4tu1(1) AAS
>>226
シャープは台湾資本のメーカーだから安心だな
228: 2020/09/23(水)13:59 ID:qG2KcxsT(1) AAS
久々に滑り倒してるギャグというものを見た
229: 2020/09/23(水)22:41 ID:JIsijUQE(1) AAS
ギャグだったの?
230(1): 2020/09/25(金)00:28 ID:RsERggiG(1/2) AAS
VARが複数行の場合はどうすれば?
$ VAR=`seq 1`; seq 2 | sed "s/$VAR/@&/"
@1
2
$ VAR=`seq 2`; seq 3 | sed "s/$VAR/@&/"
sed: -e expression #1, char 3: `s' コマンドが終了していません
231: 2020/09/25(金)08:53 ID:0C7N0fKH(1/2) AAS
VAR=`seq 2`; seq 3 | perl -0777 -pe "s/($VAR)/\@\$1/"
sed でやるなら sed の文法に合わせる必要がある。
すなわち、改行をエスケープシーケンスに置き換える。
それをした上でも sed でやるには N や t を使う必要があるだろう。
そして多分、本当にやりたいことはそれではないだろう。
なにをしたいのか正直に書いたほうがいいと思う。
232(1): 2020/09/25(金)09:45 ID:RsERggiG(2/2) AAS
URLのメモがあって特定のURLの行頭に#を入れたいだけなんだ
実際のVARには対象行の文字列が入ってる
sed '
/aaa/s/^/#/
/bbb/s/^/#/
' foo.txt
これを大量に書かずに済む方法はないかってこと
233(1): 2020/09/25(金)10:01 ID:rcXzyqi8(1/2) AAS
hoge = PARAM1:VALUE1-0:VALUE1-1;VALUE1-2
こういうあたいを、最初の:区切り文字にするっていう方法ありますか?
具体的には、
hoge = PARAM1 と VALUE1-0:VALUE1-1;VALUE1-2
に分けるのが望みです。
関係あるかわかりませんが、実際には区切り文字の:は半角です、
半角コロンは視認性がすんごい悪かったので、視認性のため全角にしております。
よろしくお願いいたします。
上下前次1-新書関写板覧索設栞歴
あと 769 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s