シェルスクリプト総合 その29at TECH
シェルスクリプト総合 その29 - 暇つぶし2ch4:デフォルトの名無しさん
18/08/25 20:12:10.01 tfF8aOe1.net
>>1
前スレまだ200番台なんですが…

5:デフォルトの名無しさん
18/09/15 20:48:25.04 iaCHT03n.net
次スレの29はワッチョイ有りにするのでこのスレは利用禁止で

6:デフォルトの名無しさん
18/12/23 08:00:40.84 W0WvAA71.net
sedだと簡単に動く一文字以上の半角スペースを一文字スペースに置換するコレ
echo "$strings" | sed -E 's/ {1,}/ /g'
bashだとどーしてもうまく動かず次のように[]で囲ってやるとなんとか全連続スペースじゃなく一部
だけが置換できた。
${strings// [ \{1,\}]/ }
それ以上どうしようもなかったので、次のような関数を作った
function Rep2One(){
local str=$1
local chr=$2
while :
do
str="${str//$chr$chr/$chr}"
if [[ ! $str =~ $chr$chr ]]; then
break
fi
done
echo "$str"
}
srings=`Rep2One "$strings" " "`
これで任意の2文字以上の連続を1文字に置換できたが、
sedみたいに一発でかっこよく記述できない?
至る所でbashからsedやgrep起動してたんだが、
bashのなかでできることはbashだけでやった方が大分速いことがわかったんで
なんとかbashの正規表現だけでやりたい

7:6
18/12/23 08:07:43.66 W0WvAA71.net
すみません前スレに移動します

8:デフォルトの名無しさん
18/12/23 08:14:13.74 yUjQiXy1.net
なんでそんなに正規表現に拘るのかわからん
#!/bin/sh
while IFS= read -r line; do
echo $line
done

9:デフォルトの名無しさん
19/01/06 10:27:56.70 vAbXyCSc.net
/ +/ /
でよくね?

10:デフォルトの名無しさん
19/01/07 03:14:23.39 Z5VMKaqE.net
ご覧ください。
スレリンク(tech板:852番)

11:デフォルトの名無しさん
19/02/08 12:14:05.84 OGIJJ+v/.net
age

12:デフォルトの名無しさん
19/02/08 15:46:28.45 mhRJFjKM.net
win10にMSYS2入れてみた
bashバッチ作ってcd `dirname $0`書いて実行したら
Cドライブだと動くのに、Dドライブで実行すると動かん
あとなぜかlookの検索が効かない

13:デフォルトの名無しさん
19/02/08 22:08:55.85 VZqJ7QJN.net
なんで同じ番号のスレが3つもあるの?

14:デフォルトの名無しさん
19/02/08 23:25:25.51 0dQnaPPd.net
dirname コマンドや、環境変数、$0 の意味でも調べれば?

15:デフォルトの名無しさん
19/02/22 19:14:15.85 iyc3D5GM.net
awkで、リダイレクト先のファイルが存在するかどうかの判別は、
どうやって書いたら良いですか?

16:デフォルトの名無しさん
19/02/23 00:38:49.67 KVnLTHAG.net
予めgetlineが返す値チェックしておけばいいんじゃない

17:デフォルトの名無しさん
19/02/23 13:41:37.65 9pS68leH.net
getlineは入力だよな?出力の話してるんじゃないの?

18:デフォルトの名無しさん
19/02/23 13:56:04.31 VtbudUFf.net
シェルスクリプトでもええんか?
シェルスクリプトのスレだし

19:デフォルトの名無しさん
19/02/23 14:45:51.45 DQY5g4De.net
file_name="a.txt"
if [ -f "$file_name" ]
then
exit 1
fi
上のように、ファイルがあるかどうかを、BEGIN { } に書けば?
終了コード0 は正常終了で、
1以上の終了コードは、異常終了

20:デフォルトの名無しさん
19/02/23 17:02:38.24 Y0E0nwid.net
>>19
awkスクリプトの中だけで完結したいんです。具体的には
getline a < "/dev/stdin";
fn = a".txt"
とファイル名を作ったあとに、そのファイルがあるかどうかを確認したいんです。
ファイルがあったら処理終了、無ければ以後の処理をそのファイルにリダイレクトする処理に進む、という感じです。

21:デフォルトの名無しさん
19/02/23 17:21:30.63 jjr+o1Vg.net
awkコマンドの出力をリダイレクトでファイルへにしてたら、awkコマンド実行時にはすでにファイルは作られてるんじゃね。シェルによるかもしれんが

22:デフォルトの名無しさん
19/02/23 17:32:34.95 YEloELhc.net
つーかさー、awkなんだからシェルスクリプトではないよな

23:デフォルトの名無しさん
19/02/23 17:39:27.76 Y0E0nwid.net
すいません、awkスレ無いと勘違いしてました。awkスレで聞いてみます。ありがとうございました。

24:デフォルトの名無しさん
19/05/04 11:59:20.98 ml9ghwy4.net
保守必要?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch