|
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
|
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 それと、ファイル名のみ場合は、値がなしとしたいのですが。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
|
>>4994 べた 失礼しました。↓でどうでしょうか? echo ${FILE} | sed -n -e 's#\(.*\)/[^/]*#\1#p' |
|
>>4996 zsh ありがとうございます。 パス名を取り出すことができました。 ただ、以下の様に場合、上手くいきません。 「FILE=/txt.csv」の場合 「/」となりません。 ブランクというか、改行します。 「/」だけ取り出すというのは無理なのでしょうか。 「FILE=txt.csv」の場合 ブランクとなります。 正しい動きなのでしょうか。 |
|
nawkのユーザ定義関数について教えて下さい。 nawkで、ユーザ定義関数を呼び出して編集を行っているのですが、 ユーザ定義関数内で編集した値を、パラメータで渡した変数に設定 して返却したいのでが値が返却されません。 ユーザ定義関数内では、渡した変数に値が設定されているのですが、 関数を抜けると値が設定されていません。 どうしてなのでしょうか。 それとも、無理なのでしょうか。 パラメータで渡した変数に設定して返すことができるのでしょうか。 環境 OS:Solairs8 シェル:Bシェル(sh) -------------------------------------------------------------- nawk -v OUT=${OutFile} -F"," ' BEGIN { count = 0+0; } function chk2(arg1,arg2,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); sub(/^"*/,"",arg2); sub(/"*$/,"",arg2); val=sprintf("%s %s",arg1,arg2); } function chk1(arg1,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); val=arg1; } { chk1($1,UserID); chk2($8,$9,Name); printf("%s,%s\n",UserID,Name); #printf("%s,%s\n",UserID,Name) >> OUT; count++; } END { printf("Output number : %d\n",count); }' ${FILE} |