- 1 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:53:21.38 ID:BBiLRgnj0.net]
- !extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512 シェルスクリプトに関する総合スレッドです。 スレ立て時は以下の文を先頭行に加えて下さい。 後のつけ忘れ防止の為に複数行重ねて追加推奨 !extend:on:vvvvv:1000:512 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 前スレ シェルスクリプト総合 その28 mevius.5ch.net/test/read.cgi/tech/1532397676/ VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 874 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:01:57.94 ID:/wKH6dhf0.net]
- >>869
#!/bin/sh t="2018-12-30T08:36:50+09:00" IFS="-T:+" set -- $t echo $1 $2 $3 $4 $5 $6 + $7 $8
- 875 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:08:31.89 ID:MMB+AHvh0.net]
- タイムゾーンはマイナスありか
- 876 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:25:42.74 ID:MMB+AHvh0.net]
- sed 's/-/ /;s/-/ /;s/\([+-]\)/ \1 /;s/[:T]/ /g'
なんか泥臭いけど
- 877 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:28:51.37 ID:/wKH6dhf0.net]
- #!/bin/sh
t="2018-12-30T08:36:50+09:00" IFS="-T:+" set -- $t case ${t%?????} in *+) echo $1 $2 $3 $4 $5 $6 + $7 $8 ;; *-) echo $1 $2 $3 $4 $5 $6 - $7 $8 ;; esac
- 878 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:32:49.36 ID:/wKH6dhf0.net]
- date -d "2018-12-30T08:36:50-09:00" "+%Y 略" (飽きた)
- 879 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 11:48:16.88 ID:btIksil/0.net]
- >>874
それだとアメリカとかのタイムゾーン-03:00に対応できなくね?
- 880 名前:879 mailto:sage [2018/12/30(日) 11:49:02.96 ID:btIksil/0.net]
- >>877
すまん。ちゃんと対応してくれてた。
- 881 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 16:00:37.71 ID:yEx+bcWd0.net]
- GNU grep の場合
$ echo '2018-12-30T08:36:50+09:00' | grep -Po '([0-9]{2,4}|(?<=:[0-9]{2})(\+|-))' | xargs
- 882 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 16:49:11.50 ID:btIksil/0.net]
- >>881
すげー。 でも後から自分でデバッグできなさそうなのでやめておくw
- 883 名前:デフォルトの名無しさん mailto:sage [2018/12/30(日) 18:51:33.10 ID:iF2NHAVN0.net]
- t="2018-12-30T08:36:50+09:00"
echo "${t:0:4} ${t:5:2} ${t:8:2} ${t:11:2} ${t:14:2} ${t:17:2} ${t:19:1} ${t:20:2} ${t:23:2}"
- 884 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 13:16:40.82 ID:0CXB5czV0.net]
- :digit:より0-9のほうが打件数少ないのはなんなんだ
- 885 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 13:57:25.01 ID:WRhsD0vEa.net]
- 単に意味を優先した表現方法があるだけやろ
- 886 名前:デフォルトの名無しさん mailto:sage [2019/01/05(土) 11:12:13.83 ID:dE0KuiGH0.net]
- 本当に一部のシステムでの話だけど
[:digit:]がロケールの数値表現にも合致する場合がある 「1」とか。
- 887 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 14:59:50.50 ID:01rSRjtda.net]
- test.txtの内容が
hoge fuga puge で、 sed -i -e s/hoge\n// test.txt とやったのに『hoge(改行コード)』が消えてくれないたすけて test.txtの一行目を削除 → 2行目が一行目に、 みたいにトコロテンしたい
- 888 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:08:57.37 ID:01rSRjtda.net]
- 自己解決・・・
sed -i -e ':a;N;$!ba;s/hoge\n//' test.txt ってやったらできました・・何この呪文。。
- 889 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:30:19.88 ID:RynyI9pj0.net]
- sed -i -e '/hoge/d' test.txt じゃダメなん?
- 890 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:36:38.32 ID:01rSRjtda.net]
- >>889
で、できました それ使っていきます ありがとうございました
- 891 名前:デフォルトの名無しさん [2019/01/07(月) 19:03:53.04 ID:fnTlHl64a.net]
- grep -v もよろしく
- 892 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:52:44.45 ID:fRqqYmWxa.net]
- 一行目を消したいのかhogeを消したいのか
- 893 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:54:56.69 ID:52D4hsE60.net]
- 全部消したい。何もかも
- 894 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:31:04.88 ID:Opohu4pM0.net]
- 要らない
何も 消してしまおう
- 895 名前:デフォルトの名無しさん [2019/01/08(火) 09:33:22.38 ID:LJT6VvGba.net]
- そんなあなたに rm
- 896 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 04:57:31.17 ID:yVo/NDAD0.net]
- ネットワーク通信(特にhttpクライアント)に関するコマンドって
大きくwgetとcurlとfetchなんかがあるけどもみんなはなに使ってます? 大抵のLinuxにはwgetが、MacとWindowsにはcurlが初期搭載されてるので そのどっちかだとは思う。
- 897 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 09:31:04.31 ID:d7ZwxpvN0.net]
- スクリプトの場合はオプションが面倒くさくいのは関係ないから
個人的には自由度の高いcurl一択かな 直接コマンド打ってダウンロードするときはaria2cを使ったりする
- 898 名前:デフォルトの名無しさん [2019/01/10(木) 10:00:22.11 ID:jQehovm3a.net]
- 昔から使ったていたというだけの理由で wget
- 899 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 11:40:29.86 ID:DS8wsvUQ0.net]
- wgetが入っていればwget、curlが入っていればcurl
両方入っているなら、ファイルにしたいときはwget、出力結果を見たいときはcurl
- 900 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 16:56:41.32 ID:jhx89QXs0.net]
- PowerShell では、Invoke-WebRequest のalias が、curl, wget
get-alias (gal) で表示できる
- 901 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 18:31:34.76 ID:yVo/NDAD0.net]
- >>900
え、それつまり $ curl ... としたときのオプションは実はcurlのじゃなくて Invoke-WebRequestに向けたオプションってこと? そんなに互換性があるオプション体系だとは思わないのだけど なぜエイリアスにしてあるんだろう……。
- 902 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 20:31:11.75 ID:UUY7OixDM.net]
- 呼ばれたときの名前によって処理を切り替えてるんじゃないの?知らんけど
- 903 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 22:34:40.34 ID:qJAnpZ0RM.net]
- cURL以外使わん
- 904 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 03:35:07.12 ID:tAdCcMWb0.net]
- bashで「=」という文字をコマンドにすることってできますかね。
「=」を「bc -l <<<」に割り当てて $ = '4 / 5.1' みたいな簡易電卓として使いたいなと思ったんだけど alias =='bc -l <<<'やfunction = { bc -l <<< "$1" }はダメ……。 一応GNU Bashの「コマンドに使っていい文字」ではあるんだけど、使えない
- 905 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 05:36:31.36 ID:YPYEBq870.net]
- =というファイル名のシェルスクリプト書いたら?
bashもいらんし #!/bin/sh echo "$@" | bc -l
- 906 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 08:51:55.60 ID:EZ88NWNa0.net]
- function = { bc -l <<< "$1"; } ってすればできる(セミコロンが必要)
|

|