シェルスクリプト総合@LINUX Part4 at LINUX
[2ch|▼Menu]
1:login:Penguin
08/05/17 13:44:57 9hFWtCOD
UNIX板のスレを見ている方も多数おられるかと思いますが、
まあそれはそれとして、BASHウゼーとか言われる心配なく
平和にLINUX的スクリプト談義しましょうよ。

初めての自作スクリプト、自信ないから見てください。な初心者から
トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで
いろいろな人に参加して頂けると嬉しいです。

perlやらPythonやらの話が混ざっても良いんでない?

Part3 : スレリンク(linux板)
Part2 : スレリンク(linux板)
Part1 : スレリンク(linux板)

>>2-5あたりに色々と。

2:login:Penguin
08/05/17 13:45:47 9hFWtCOD
関連スレ
おまいら! sed の使い方教えて下さいm(_ _)m@linux板
スレリンク(linux板)
【Shell】どのシェル使ってる?【Script】@LINUX板
スレリンク(linux板)
シェルスクリプト総合 その10
スレリンク(unix板)
sed@UNIX板
スレリンク(unix板)
2ちゃん画像落としまくりスクリプト@UNIX板
スレリンク(unix板)
連番のH画像/動画を一気にダウンロードする2
スレリンク(unix板)

ログを読みたい人はこちら
URLリンク(makimo.to)

3:login:Penguin
08/05/17 13:46:06 9hFWtCOD
参考リンク
bashで始めるシェルスクリプト基礎の基礎 @IT
URLリンク(www.atmarkit.co.jp)
シェルスクリプト(Bash)入門 CYBERAM Documents Project
URLリンク(cyberam.dip.jp)

IBM developerWorks
実例でわかるsed
URLリンク(www-06.ibm.com)
URLリンク(www-06.ibm.com)
URLリンク(www-06.ibm.com)
実例でわかるawk
URLリンク(www-06.ibm.com)
URLリンク(www-06.ibm.com)
URLリンク(www-06.ibm.com)
コマンドラインからのグラフィックス操作
URLリンク(www-06.ibm.com)
洗練されたPerl: MP3とPerlで遊ぶ
URLリンク(www-06.ibm.com)
URLリンク(www-06.ibm.com)

4:login:Penguin
08/05/17 13:46:45 9hFWtCOD
>2
おまけの関連スレ

シェルスクリプト相談室
スレリンク(tech板)
awkについて語るスレ $2
スレリンク(tech板)

5:login:Penguin
08/05/21 00:32:13 a/iElE66
Unix系は仕事でSolarisから入ったので、Linuxでもtcsh使ってますが何か?

6:login:Penguin
08/05/21 00:32:36 a/iElE66
お、何かいいID

7:login:Penguin
08/05/21 20:20:15 5fFqv5kV
シェルでエロゲ作成したいんだけど意見聞かせてくださいな

8:login:Penguin
08/05/21 20:57:55 MNgR1LfO
ギガバイ子ちゃんでお願いします。期待しています。

9:login:Penguin
08/05/21 23:57:35 DRn6AcXl
ヒロインの一人に使ってあげてくれ
              _,,.. -ー 'ヘ-、、_
      .!、、 !、_、,.ィ'"   _ ,,..   _,゙ヽ,
      \`ー`=    '´ _,..、 ヽ  `、 ヽ
        ゝ、     /´ `  `ヽ   ゙、
       /   ,/ ,、/ ,.イ    !     ヽ、
      ノ ー=ニ,..-、,ヾ;、' /,.' !  i|  !   、__ ,.Zャ
    ー- 7 , /,、ヾ;、,.ィ // ,イ! ,!ト | ,イ  、ヾ、_
      / ,.' ,' ! ヾ;、'イ/ / / / |i |!,! / ヽ、 \、_
     ,/イ / ,!,イ!/_ !|;/  //_,.ィー|' /,ィ、   、ー- '"
      _/,.イ/!|i !ニ。ミ   /' ,ィ:;゚ソゞ |i }、-r-ー'ィ
     ゙̄/',.ヽ,|!ヾ`ゞ'='     ` ´ /!'" ーヤ
      ̄´フ! / ハ     ,:      ,イ ト、 ー_ユ-r''"`!
       /___ ,. \   ー_-;ァ  /!-''"イ´  |;;! ,.|
       ̄ /´ /イ!|/ ,ヘ、、   ,..イ;''´::;イ|    ,.! '´イ!
       /ヘ! { !/:::!'ヾi| ` ゙/:::::/ | !.-,..=-'´!|  ゙|!
      イ{゙ ト、 ヾ::::::::゙、   /::::::; '  ,r',.ヘヾ   ゙!|  ゙、
    _,.-ゞト!、 ヽ ゙!:::::::ヽ/::::,イ|  /イ-r'┴-、、 |;i  !
   / !__,,...|;i,.._ヽi!、 |::ヽ::イ!::/ ヾ!ィ'´   |;!   ゙iヽ| ト'' ソ
   / r|'"`7/゙T`,>ヾ>;!ノ:r!::く ,イ´,.!|__,,.. -┴ー -、!|ヾ゙!_ノ
  ,イL/゙! // / //´>::|!:::|i::ネ{! i!,!'´ //      ヾ,.|i|
 ,!,イ/ヾi! | L;. /イ/::::::|!::::|ir-、' /___//_      ノソi;|

10:login:Penguin
08/05/23 04:46:10 RB3w3nsA
ちょっとスレの趣旨から離れてしまいますが、
たとえば Windows の WSH のように Javascript で
一般的なシェルスクリプトのようなものを実行できる
インタープリタって、Linux にはないんでしょうか?

普段は bash 使っててそれで仕事上は全然問題ないんですが、
Windows ではバッチ処理を WSH + JScript で書いているので
ふとなんで Linux にはそういうのがないんだろうか、って思って。

11:login:Penguin
08/05/23 07:16:44 uTynWoSg
OpenJDK+Rhinoじゃダメかい?

12:login:Penguin
08/05/23 22:34:35 tQ4+YbeK
自宅のLinuxマシンをsmbサーバにして、
画像、テキスト、動画など、すべてのファイルを保存・管理しています。

仕事で書いた原稿記事などについても、
いちいち GUI アプリで開かなくても、
ターミナルからでも中身を閲覧できるように、
必ず文字コードは UTF-8, 改行コードは LF で保存しています。

が、クライアント(主として MacOSX、たまに Windows)のターミナルから、
そうしたテキストファイルを less で見ると、当然のことながら、
見やすい場所での改行を一切しないで、
ターミナルの幅いっぱいにテキストを広げてくれます。

これを、何か適当なところ(例えば一行は50字など)で
改行を入れて表示させてやる方法ってあるでしょうか?

クライアントは主として MacOSX 10.4.11 で、
使っている仮想端末は、OSX 標準の /Applications/Terminal.app です。
たまぁに WindowsXP や Windows2000 などからもアクセスし、
その場合には poderosa.exe を使っています。
サーバマシンは CentOS4.6 です。

ls になんらかのオプションを与えて整形するのか、
それともなんらかのシェルスクリプトを組んでやる必要があるのか、
基本的なところからわかりません。
どなたかアドバイスいただけませんでしょうか?
よろしくお願いいたします。

13:login:Penguin
08/05/23 23:29:13 1NkPPjck
>>10
こういうものはある。使ってる人は見ないけど。
URLリンク(www.wxjavascript.net)

>>12
スレチだけど lv -W50
これでわからなければCentOSのスレへ

14:login:Penguin
08/05/23 23:44:07 emu552tY
lvってCentOS製だったの?

15:login:Penguin
08/05/23 23:52:41 yTe4r5LG
>>13
どうもありがとうございました。
CentOS 用のパッケージは見つからなかったんですが、
ソースが見つかったので、checkinstall で rpm を作り、
インストールしたらすぐに希望通りのことができました。

16:login:Penguin
08/05/24 08:58:44 RlisQGoN
Mac OSXはUnix系と聞いたが、改行コードが違うのか。

17:login:Penguin
08/05/24 09:20:38 yYzGER+2
>>16
昔の MacOS は違ったなぁ.

18:login:Penguin
08/05/24 09:42:14 z250jUqQ
まだ\rなのか

19:login:Penguin
08/05/24 10:01:19 R69XGiJs
ええと、標準だと今でも CR+LF ではないかと思いますが、よく知りません。

20:login:Penguin
08/05/24 16:36:20 tQzGMWxj
>>16
Linuxと同じくLF

URLリンク(ja.wikipedia.org)改行コード
URLリンク(ja.wikipedia.org)プレーンテキスト
URLリンク(www.openspc2.org)

21:login:Penguin
08/05/24 16:52:04 yYzGER+2
* LF: UNIX系のシステム。Linux、AIX、Xenix、Mac OS X、BeOS、Amiga、RISC OSなど。
* CR+LF: CP/M、MP/M、DOS、OS/2、Microsoft Windows。
* CR: コモドールによるシステム、Apple IIファミリ、Mac OS(バージョン9まで)、OS-9。


22:login:Penguin
08/05/24 20:48:36 5ErPV5SE
>>20-21
あ、OSの改行コードの違いにより改行されないことが>>12の相談かと思ったよ。
そもそも改行していない文章を fmt したいということか。

23:login:Penguin
08/05/24 22:57:24 //jRJGUZ
MACはCRとずっと思ってたのにLFなのかぁ

24:login:Penguin
08/05/28 15:18:10 HsWDzpDn
子プロセスとして起動されたのか,
. で読み込まれたのか,
スクリプトの中から判断することはできますか?

25:login:Penguin
08/05/28 15:23:33 HsWDzpDn
それぞれ set の結果を diff してみた.

#子プロセスとして起動した ./test.sh
< BASH_ARGC=()
< BASH_ARGV=()
< BASH_LINENO=([0]="0")
< BASH_SOURCE=([0]="./test.sh")
---
#. で読み込んでみた . test.sh
> BASH_ARGC=([0]="1")
> BASH_ARGV=([0]="test.sh")
> BASH_COMPLETION=/etc/bash_completion
> BASH_COMPLETION_DIR=/etc/bash_completion.d
> BASH_LINENO=([0]="39")
> BASH_SOURCE=([0]="test.sh")

ふぅん.BASH_SOURCE じゃ判定できそうにないな.
BASH_ARGC が 0 じゃないことでチェックするのかな?

26:login:Penguin
08/05/28 15:31:38 HsWDzpDn
-------すくりぷと test.sh
#!/bin/sh
set
-------ここまで

chmod +x test.sh
./test.sh
./test.sh a b c
. test.sh
. test.sh a b c

4つともやってみたけど,結局何で判定すりゃいいのかわからない.
死ね俺.

27:login:Penguin
08/05/28 15:36:50 HsWDzpDn
${BASH_LINENO[0]}
で判定するのがよさげなんだけど,
そもそも sh にはそんな機能ないの?
bash 限定はちょっとやだなぁ.

28:login:Penguin
08/05/28 15:42:12 HsWDzpDn
単純に $0 で判定するのがいいのか?

29:login:Penguin
08/05/28 15:43:32 RYpMT0gt
lessの代わりにleafpadを使えば

30:login:Penguin
08/05/28 17:51:58 4Ch8TEZp
sh または bash で配列の結合ってできますか?


31:login:Penguin
08/05/28 19:03:04 xwe44XYV
神様助けてください
関数に配列を渡す方法がわかりません

a=( あ い う え お )
fnc(){
echo ${1[0]}
}

fnc a

これで”あ”が出ると思ったんですがでません
教えてください
お願いします

32:31
08/05/28 20:20:45 xwe44XYV
シェルスクリプトにはスクリプト内でスコープが無いことを知り

a=( あ い う え お )
fnc(){
echo $a[0]
}
fnc

で”あ”が表示できるようになりました

33:login:Penguin
08/05/28 23:35:58 auu89eB+
ループ文で外部ファイルから読み込んだコマンドを実行しようとしたときに
パイプ処理ができずに困ってます。(下記の場合、ls -lの結果しかでません)
サブシェルの方に行ってしまっているのかな?と思っているのですが、どう処理したらよいのでしょうか?

FILE=test.txt
while read LINE
do
$LINE
done < $FILE

■test.txtの内容(例)
ls -l | grep abc

34:login:Penguin
08/05/29 00:07:17 vP9yV59g
>30
c=(${a[*]} ${b[*]})

>33
FILE=test.txt
while read LINE
do
eval $LINE
done < $FILE

35:33
08/05/29 00:17:22 iY0MCSHA
>>34
ありがとう!できました!便利なもんがあるんですね。
助かりました〜。

36:login:Penguin
08/05/30 19:21:49 p9jie4Lm
echo $a[0]
これってちゃんと出力できるの?
${a[0]}
ってしないとエラーにならね?

37:login:Penguin
08/05/30 19:45:31 ZG0+9xy3
% a[0]='abcef'
% echo $a[0]
abcef
% echo ${a[0]}
abcef
% echo $SHELL
/bin/zsh

38:login:Penguin
08/05/31 06:16:56 g+xuahlh
#!/bin/sh

a[0]='abcef'
echo $a[0]

a[0]='abcef'
echo ${a[0]}
--------------------
[siomizu@cluster ~]$ ./test.sh
abcef[0]
abcef

39:login:Penguin
08/05/31 16:10:17 qUj8kkoX
uniqはUTFには対応していないでしょうか?
たとえば、以下2行がある場合にuniqすると承のみになってしまいます。

承 <- 0xE689BF
良 <- 0xE889Af

環境はdebianのcoreutils 6.10-6、改行コードはLFを使用しています。
よろしくお願いします。

40:login:Penguin
08/05/31 16:22:33 q3zltHwi
再現できるスクリプトを書いてください

41:39
08/05/31 16:33:59 qUj8kkoX
>>40
私でしょうか?
単に以下の2行を書いたファイルを用意してuniqです。




あ、「<-」以降は単にUTF8でこんなバイナリになるというのを示しただけです。
失礼しました。

42:login:Penguin
08/05/31 16:36:28 q3zltHwi
私の環境では再現できませんので。
$ printf "\xe6\x89\xbf\n\xe8\x89\xaf\n" | uniq



43:39
08/05/31 16:46:52 qUj8kkoX
>>42
そうですか・・・
うちでは
% printf "\xe6\x89\xbf\n\xe8\x89\xaf\n" | uniq | hexdump -C
00000000 e6 89 bf 0a e8 89 af 0a |........|
00000008

でした。参考までにディストリとLC_ALL何にしているか教えていただけませんか?

44:39
08/05/31 17:01:51 qUj8kkoX
すいません 43でできてるじゃないかorz

LC_ALLをUTFにした状態だとうまくいきました。
uniqはロケール見るのか・・・

ありがとうございました

45:login:Penguin
08/06/01 19:54:58 3xisQkfz
オライリの入門bash難しいよ・・・
これホントに入門なの・・・?

46:login:Penguin
08/06/01 21:38:04 EWKpU6i4
オライリーは全般的に中級者が読む本だ

47:login:Penguin
08/06/02 18:36:56 GT1ocSub
すみません。くだ質から誘導されてきました。よろしくお願いします。
bangou.txtには

123123
123123
100000


というように数値が入っています。(▲は空白ですが改行コードがはいってます)
この場合、1行目と3行目を比較して3行目に数値が入っている場合のみ2行目の値を別表に表示する
スクリプトを作りたいと思って色々調べて以下のようなスクリプトを作ってみましたけど
うまく動きません。(空白は空白として認識してくれないと行がずれるのでそれも認識したいです)


#!/bin/bash
for iii in `cat bangou.txt`
do
jjj=`sed -n '2p' bangou.txt`
export jjj
kkk=`sed -n '3p' bangou.txt`
export kkk
if [ "$iii" = -n ]
then
echo "$kkk>/dev/null
else
echo "$jjj > jjj.txt
paste jjj.txt toku.txt >> toku2.txt
rm -rf jjj.txt
fi
done

どこか間違ってるんでしょうか?よろしくお願いします。

48:login:Penguin
08/06/02 19:03:36 X93+nxzv
>>47
やりたいことがよくわからん。
toku.txt の内容と、
実行後に toku2.txt がどういう内容になってればいいのかを書いてくれ。

49:login:Penguin
08/06/02 19:28:58 GT1ocSub
>>48さん
返信ありがとうございます。
toku.txtは住所録です。
それをとりあえず一旦、toku2.txtにbangou.txtと組み合わせたものを
書き出しているだけなのでtoku2.txtには特に何も入っていません。
toku.txtは

東京都
東京都
東京都
東京都
東京都

愛知県
みたいな感じです。(▲は空白です)
これをそのままpasteでbangou.txtと結合すると
▲▲
123123 東京都
123123 東京都
100000 東京都
▲ 東京都
▲ 東京都
となってしまうのでこれを
▲▲
123123 東京都
123123 東京都
100000 東京都
100000 東京都
100000 東京都
というようにしたいんです。空白の行に一番最後の
番号を割り当てたいんです。わかりにくくてすみません。宜しくお願いします。

50:login:Penguin
08/06/02 19:35:12 GT1ocSub
ごめんなさい。「▲は空白」と書きましたけど実際は改行コードが入っているだけです。
すみません。ごめんなさい。

51:login:Penguin
08/06/02 19:44:36 X93+nxzv
いまいちよくわからんな。
>>47
> この場合、1行目と3行目を比較して3行目に数値が入っている場合のみ2行目の値を別表に表示する
っていう話もどうなったのやら。

シェルスクリプトでがんばるより perl あたりで書いちゃった方が早そう。

52:login:Penguin
08/06/02 19:54:09 GT1ocSub
>>47の書き方が悪かったかもしれないです。ごめんなさい。
実際には>>49のような処理をしたいんです。
perlでもいいです。一旦処理できればいいんで。お願いします。

53:login:Penguin
08/06/02 20:01:01 6RTLtbwy
pasteコマンドで結合して処理すればいいんじゃないの?

54:login:Penguin
08/06/02 20:07:59 GT1ocSub
>>53さん
ご指導ありがとうございます。pasteで結合しただけだと
bangou.txtで空白の部分があるので >>49 のように
▲▲
123123 東京都
123123 東京都
100000 東京都
▲ 東京都
▲ 東京都
となってしまうので困ってます。
これを
123123 東京都
123123 東京都
100000 東京都
100000 東京都←空白が上の行と同じ番号
100000 東京都←空白が上の行と同じ番号
という風にしたいんです。お願いします。


55:login:Penguin
08/06/02 20:09:26 6RTLtbwy
100000 でいいならsedで置換するだけじゃん。

56:login:Penguin
08/06/02 20:11:48 GT1ocSub
>>55さん
お返事ありがとうございます。
数値は「10000」ではないんです。
上にある行の数値が欲しいんです。
わかりにくい説明ですみません。
宜しくお願いします。

57:login:Penguin
08/06/02 21:14:50 W+U/n8+A
paste bangou.txt toku.txt | awk '{printf( "%s %s\n", (NF>1)? $1: onaji, $NF );
onaji=$1}'
とかかな?
でも、番号の1行目が空白のときはどうするのだろう。

58:login:Penguin
08/06/03 00:37:37 xzQHL5F2
>>57さん
ありがとうございます!
明日早速試してみます。ありがとうございます。

59:login:Penguin
08/06/03 16:14:01 CIWG+PQ4

あのスレ住人(特にdebユーザ)に、お願いなんだが、テンブレにあるし絶対ダメだとかいわんけど
書き込むとき、せめてシェルスクリプトと他のperlなんかのスクリプト言語は
意識して区別してくれまいか?ここ、「シェルスクリプトスレ」だから。

(上で「特にdebユーザ」と言ったのは、批判じゃなくて、前スレで発覚したんだが
 debはディストリレベルでコマンドとperlスクリプトなんかが混在になってるらしく
 ユーザ自身が区別しない慣習のようだから。でも、それって一般的じゃないし混乱のもとだよね?)

sedでもawkでもperlでもいいけど(ここら辺までは普通にシェルで使うだろけど、
perlで複雑なことやりこんだり)なんでもありありなら、わたしゃpythonやzenityや
織り込んでGUIやgtkベースの話はじめちゃうぞw



60:login:Penguin
08/06/03 16:16:16 8f1erIVq
「テンブレ」?
「ディストリレベルで混在」?
どういう意味?

61:login:Penguin
08/06/03 16:43:03 CIWG+PQ4
>>60
テンプレつーのは、つーか、>1に
>perlやらPythonやらの話が混ざっても良いんでない?
とあるし、>2-4にスクリプト言語のリンクも張ってある。

混在つーのは、具体例では、debではrenameコマンドがperlスクリプトprenameに置き換えてあるし
どうやらシェル上のパスの通し方なんぞが、perlなどを使いやすいように拡張されてるようだ。
ま、debユーザじゃないので詳しいところまではわからないけどね。

一応断っておくけどdeb批判じゃないよ。


62:login:Penguin
08/06/03 16:56:54 8f1erIVq
「テンプレ」を「テンブレ」と書いていたことには気付いているのだろうか。

>>61
> 混在つーのは、具体例では、debではrenameコマンドがperlスクリプトprenameに置き換えてあるし
これは特殊かつ些細な例でしょ。
他に何かある?

> どうやらシェル上のパスの通し方なんぞが、perlなどを使いやすいように拡張されてるようだ。
そんな事実はないよ。

63:login:Penguin
08/06/03 17:08:25 CIWG+PQ4
うわぁ、やっぱりdeb信者は・・・ごめんなさいね。趣旨だけ理解してちょ。

64:login:Penguin
08/06/03 17:10:02 GEyZQq+8
これだけで信者扱いする君もそうとうなものだと思うぞ。

65:login:Penguin
08/06/03 17:11:57 CIWG+PQ4
はいはい、ごめんなさい、ごめんなさい。あんたが大将。

66:login:Penguin
08/06/03 17:23:16 8f1erIVq
信者って決めつけられてもな。
Debian も使ってるし他のディストリも使ってるし。
よく知りもしないのにいいかげんなこと言うな、ってだけ。

67:login:Penguin
08/06/03 17:46:57 L2QLzXUM
ちんこ

68:login:Penguin
08/06/03 20:26:13 UQvQZC/E
>>59
分界点が判らない。

69:login:Penguin
08/06/03 20:51:52 +2Z+EheD
>>68
分界線という言葉ならあるが

70:login:Penguin
08/06/03 22:24:45 4bIEot6Q
Debianではっつうか、そいつの問題だろう。
シェルスクリプトかperlスクリプトか見てわからないような奴は他の鳥使ったってわかるようにならない。

71:login:Penguin
08/06/03 22:25:09 meWc8EbG
>>59
> debはディストリレベルでコマンドとperlスクリプトなんかが混在になってる

デブな人だけどなんのこっちゃ?
まさかPerlスクリプトなら*.plになるとか言ってるわけじゃないよな?

72:login:Penguin
08/06/03 22:31:11 /nacTMrw
というか、俺も言ってる意味が分からない
とくにディストリレベルっていう言葉
ディストリレベルってのはどのレベル?

73:login:Penguin
08/06/03 22:41:59 8iXvkF35
#/bin/sh
perl -e printf( "hello world\n" );

だと、>>59基準でOKか否かが分かんない。

74:login:Penguin
08/06/03 22:48:40 513yN16/
例えばls って打つと ls.pl が起動されるって事だと読み取った。
Debian系は使っていないので真実は知らない。

75:login:Penguin
08/06/03 22:49:50 OcnJ3se+
#!/bin/sh

perl sh.pl
ruby sh.rb
php sh.php

system("hoge.sh",$ret);
exec("hoge.sh",$ret);

exec("sed 's/B/A/g' $current > $tmp",$ret);
exec("rm $current",$ret);
system("mv $tmp $current",$ret);

もう人生バラ色です

76:login:Penguin
08/06/03 23:39:04 /nacTMrw
俺の人生はルビー色

77:login:Penguin
08/06/03 23:48:22 J2hvNDuq
質問です。

$ ls "a"
file1  file2
$ echo ls \"a\"
ls "a"
$ `echo ls \"a\"`
ls: cannot access "p": No such file or directory

三つめでエラーになるのはなんででしょう?
こういう時はどう書くのが正しいのですか?


78:login:Penguin
08/06/03 23:52:30 4a1SGQ4Q
$ ls "a"
ls: a: No such file or directory
$ echo ls \"a\"
ls "a"
$ `echo ls \"a\"`
ls: "a": No such file or directory
$

79:login:Penguin
08/06/03 23:53:03 wxT19Ovz
eval `echo ls \"a\"`

80:77
08/06/03 23:55:16 J2hvNDuq
>>79
おお!早速ありがとうございました。

81:login:Penguin
08/06/04 10:36:15 bCIXok9Z
bashの/dev/nullについて質問します。
lsの表示結果でエラー出力だけは表示させずに
標準出力のみtest.txtファイルに出力したいのですが
自分の理解では以下に書いた2になりますが、表示結果
では1でないと通りません。どのようにイメージしたら宜しいのでしょうか?

1: ls /home/ > /dev/null 2>&1 > test.txt
2: ls /home/ > test.txt > /dev/null 2>&1

82:login:Penguin
08/06/04 10:42:14 jifIrR2s
>>81
「bash のリダイレクトについて」だろ。
/dev/null は bash の問題ではない。

ls /home/ >/dev/null 2>test.txt
で OK。

83:login:Penguin
08/06/04 11:04:40 bCIXok9Z
>>82
すいません、リダイレクトについてでした。回答有難うございます。
ls /home/ >/dev/null 2>test.txtについての流れで確認を
して頂きたいのですが宜しくお願い致します。

上記の標準出力1の状態について、lsの結果が/dev/nullに行く。
(ここでデータは破棄されてしまうという考えなのですが)
そして、エラー出力2はtest.txtになってますよね?

1の状態 /dev/null
2の状態 test.txt

84:login:Penguin
08/06/04 11:52:58 3E+PCnl7
>>81
> 1: ls /home/ > /dev/null 2>&1 > test.txt

1) /dev/null を標準出力の出力先に指定
2) 標準出力の出力先をエラー出力の出力先に指定
3) test.txt を標準出力の出力先に指定

結果
標準出力: test.txt
エラー出力: /dev/null


> 2: ls /home/ > test.txt > /dev/null 2>&1

1) test.txt を標準出力の出力先に指定
2) /dev/null を標準出力の出力先に指定
3) 標準出力の出力先をエラー出力の出力先に指定

結果
標準出力: /dev/null
エラー出力: /dev/null

85:login:Penguin
08/06/04 11:59:59 jifIrR2s
>>81
1: でほんとにうまく行ってる?

86:login:Penguin
08/06/04 16:29:28 bCIXok9Z
>>84
リダイレクトは出力先を決めるだけなのですか。
解説して頂いた通りで色々パターンを考えてみましたら
出来るようになりました、有難うございます

>>85
一応処理結果では正常な雰囲気なのですが、>>81ですと
理解しずらいので、変えようか考えています。

レス遅れましたが皆さんありがとうございました

87:login:Penguin
08/06/04 22:17:21 T1bDhlj1
>>86
シェルどころか日本語まで・・・

88:login:Penguin
08/06/05 00:21:00 lO8RLUCT
与えられたパスを絶対パスに正規化したいのですがどうすればよいですか?
単に相対->絶対の変換をするだけじゃなくて
.とか..も適切に変換してくれるとうれしいのですが。


89:login:Penguin
08/06/05 00:23:58 qyhUQGl8
>>88
`pwd`/$1

90:login:Penguin
08/06/05 00:32:17 brEG0pS6
realpathだっけ?

91:login:Penguin
08/06/05 06:27:50 Ysl4yLMq
ここはLinux板だからreadlink -fでどうか

92:login:Penguin
08/06/07 17:03:59 lYfLA/cT
スレ違いのような気もしますが・・・
lsの出力が端末だとスペース区切りなのにパイプやリダイレクトすると改行になるのはどういう仕組みですか?


93:login:Penguin
08/06/07 17:10:19 6DqLCPKX
isatty(3)

94:92
08/06/07 17:13:39 lYfLA/cT
なるほど、lsのほうで端末かどうかみてるんですね…
納得しました。どうもありがとうございます。

95:login:Penguin
08/06/08 00:25:14 z0g0MNBT
スレ違いだと思うならくだ質に行きなさい。

96:login:Penguin
08/06/08 14:37:28 w3H8z2Sk
シェルスクリプト中で、リダイレクトでファイルを生成するとファイル名が文字化けしてしまうのですが
一体何が悪いんでしょうか。
↓みたいなことになります。

$ echo $LANG
ja_JP.UTF-8
$ cat test.sh
echo a > "$1"
$ echo hoge > "あいうえお.hoge" ; ls
test.sh あいうえお.hoge
$ sh test.sh "あいうえお.hoga” ; ls
??????????.hoga test.sh あいうえお.hoge

touchとかなら文字化けしないようなのですが。


97:96
08/06/08 14:54:23 w3H8z2Sk
補足です。

$ ls | hexdump -C
00000000 e3 82 e3 84 e3 86 e3 88 e3 8a 2e 68 6f 67 61 0a |...........hoga.|
00000010 74 65 73 74 2e 73 68 0a e3 81 82 e3 81 84 e3 81 |test.sh.........|
00000020 86 e3 81 88 e3 81 8a 2e 68 6f 67 65 0a |........hoge.|
0000002d


98:login:Penguin
08/06/08 21:58:48 cpZuCikO
ls --show-control-chars

99:login:Penguin
08/06/09 19:55:01 Dt/jCYdy
URLリンク(jp.youtube.com)
ワロタ

100:login:Penguin
08/06/09 20:44:39 19yx0Oqh
注文スクリプトを作りました、ってこと?

101:login:Penguin
08/06/09 20:52:39 1XPLtUDQ
日本でもオンライン注文のピザ屋があれば出来そうね。
映画ジュラシックパークの中でプログラマーがデブでピザ食べていたけど、
この動画もその皮肉?

102:login:Penguin
08/06/09 20:56:56 zrUasBao
シェルスクリプトじゃないけど。
URLリンク(e8y.net)

103:login:Penguin
08/06/09 21:02:45 zrUasBao
>>101
hacker の食べ物といえば
ピザと Jolt Cola と相場が決まっておる。

104:login:Penguin
08/06/10 00:00:50 Uz5XyeDf
なんだPizza Partyか
URLリンク(slashdot.jp)

105:login:Penguin
08/06/10 13:27:23 Gys5ZtGT
2037→1048→2481207→↓
2037→1048→2481207→↓
20311→1056→2481211→↓
20320→1114→2481218→↓
20320→1114→2481218→↓
20326→1155→2481211→↓
20326→1155→2481211→↓
→ →2481211→
→ →2481211→↓
tomo.txtの中身はこうなっています。(→はタブ、↓は改行コードです)
これで2列目に何も文字列が入っていない場合は3列目も何も文字列を
入れないようにしたいです。(上のtxtの場合だと下の2行が対象になります)
sedとcutでなんとかなるかと思ったんですけどなかなかうまくいきません。
誰かいいスクリプトを教えて下さい。宜しくお願いします。

106:login:Penguin
08/06/10 14:03:41 rnP/TIGa
これでどう?

awk '{if (length($2) != 0) print;}' tomo.txt

107:105
08/06/10 15:27:43 Gys5ZtGT
早速のレスありがとうございます。でもうまく動かないです。。。
試しにlengthの値を変えてみたりしたんですが何も変化がないです。。

108:login:Penguin
08/06/10 16:24:40 mINSOvv3
>107
もっと具体的に目的を書かないとどういう結果が欲しいのか解らんよ。
>105の下から2行目は改行が入ってないの?
それとなにも列に入っていないと言いつつ全角スペースが入っているのは何故?
まあ、やりたいことを推測して例を出せばこんな感じか?
cat tomo.txt | while read LINE;do set -- $LINE; if [ $# = 3 ]; then echo "$LINE"; fi; done

109:105
08/06/10 19:02:47 CM93IypP
>>108さん
ご回答ありがとうございます。
すみません。
>105の下から2行目は改行が入ってないの?
入ってます。
>それとなにも列に入っていないと言いつつ全角スペースが入っているのは何故?
実際には入っていません。
ですから正確にはtomo.txtはこうなってます。
2037→1048→2481207→↓
2037→1048→2481207→↓
20311→1056→2481211→↓
20320→1114→2481218→↓
20320→1114→2481218→↓
20326→1155→2481211→↓
20326→1155→2481211→↓
→→2481211→↓
→→2481211→↓

110:105
08/06/10 19:05:04 CM93IypP
それを以下の下2行の2列目に文字列がない場合は
削除したいので以下のような結果を出して欲しいんです。
2037→1048→2481207→↓
2037→1048→2481207→↓
20311→1056→2481211→↓
20320→1114→2481218→↓
20320→1114→2481218→↓
20326→1155→2481211→↓
20326→1155→2481211→↓
→→→↓
→→→↓

何度もすみません。よろしくお願いします。

111:105
08/06/10 19:19:42 CM93IypP
cat tomo.txt | while read LINE;do set -- $LINE; if [ $# = 3 ]; then echo "$LINE"; fi; done
を試してみましたけどやはり何も変化はありませんでした。
すみません。お願いします。

112:login:Penguin
08/06/10 19:35:16 gcco3DVH
よくわからんけど、タブが2回続いたらタブ3個だけの行に置き換えるとかじゃだめなの?
やり方は知りません

113:login:Penguin
08/06/10 21:34:41 39ga6S1g
これはどうだ?

awk -F '¥t' '{if ($2 == "") { $3 = ""}; print}' < tomo.txt

awkのデフォの列識別はタブじゃないから-Fで指定してね。


114:105
08/06/11 03:27:04 bnnOzDXT
>>113
ありがとうございます。今日はこんな時間なので明日試してみます。
'\t'の部分がうまく識別してくれたらいけそうな感じがします。

115:105
08/06/11 05:10:34 bnnOzDXT
おはようございます。
今試してみたらうまく動きました。ありがとうございました。

116:login:Penguin
08/06/11 05:47:46 wK/2Md+f
>>114 >>115
明日ってw 

117:105
08/06/11 08:14:21 sVHDZWwZ
あっーーー!よくみたら
2037→1048→2481207→↓
2037→1048→2481207→↓
20311→1056→2481211→↓
20320→1114→2481218→↓
20320→1114→2481218→↓
20326→1155→2481211→↓
20326→1155→2481211→↓


って感じで最後の2行のタブが全部消えてました。。。
これは消えると困るんです。再度お願いします。。。

118:login:Penguin
08/06/11 08:47:58 uz75y6lZ
難問が…

119:login:Penguin
08/06/11 10:00:16 NnMk6hEw
>112でいけるだろ
sed -e 's/\t\t[^\t][^\t]*/\t\t/' tomo.txt
\tが使えなかったらタブで置きかえる。

120:login:Penguin
08/06/11 10:14:39 tvbxZjG7
>>117

あり? $2 = ""をしない行はちゃんとタブで分けたまま出力してるのに
置き換えをした行はスペースが出力区切り文字になっちゃうな。

じゃ、無理矢理修正

awk -F '¥t' -v OFS='¥t' '{if ($2 == "") { $3 = ""}; print}' < tomo.txt

OFS はoutput field separator



121:105
08/06/11 11:52:44 sVHDZWwZ
ありがとうございます!
今度こそ大丈夫です!本当にありがとうございます!

122:login:Penguin
08/06/11 22:25:09 8Wsl19+C
Open Foundation Software じゃないのか。

123:login:Penguin
08/06/12 00:10:41 JqmZrOtu
>>122
OSFですがw Open Software Foundation


124:login:Penguin
08/06/12 11:24:21 irJT+vdW
誰かピザハット対応ピザ注文コマンド作ってくれないものか。

125:login:Penguin
08/06/12 11:52:43 3DTOjPry
>>124
出前館にあるみたいだから、>>102 をいじれば作れるんじゃない?

126:login:Penguin
08/06/12 12:44:22 Y4yiWWC/
#xxx.txtの1行目を変数iに代入します
for i in `cat xxx.txt`
do
#xxx.txtの2行目を$jに入れます
j=`sed -n '2p'
export j
#変数eeeにxxx.txtの2行目から15行目を代入します
eee=`sed -n '2-15p'
export eee
#pasteで結合できるように変数をtxtファイルに入れます
echo $i > i.txt
echo \t > ccc.txt
echo $eee > eee.txt
if
#xxx.txtの行の先頭が20から始まる場合
then test $j = "^20"
#結合します
paste i.txt ccc.txt eee.txt
else
#何もしない
fi
done

初心者です。こんなスクリプトを作ったんですけどうまく動きません。
修正していただけるとありがたいです。お願いします。

127:126
08/06/12 12:55:44 Y4yiWWC/
#xxx.txtの1行目を変数iに代入します
for i in `cat xxx.txt`
do
#xxx.txtの2列目を$jに入れます
j=`sed -n '2p'
export j
#pasteで結合できるように変数をtxtファイルに入れます
echo $i > i.txt
echo \t > ccc.txt
if
#xxx.txtの行の先頭が20から始まる場合
then test $j = "^20"
#結合します
paste i.txt ccc.txt eee.txt
else
#何もしない
fi
done

間違えました。eee.txtは別途作りますので上記のような感じです。

128:login:Penguin
08/06/12 14:03:25 Y4yiWWC/
意味不明ですみません。会社から回りの人の目を盗みながら
こそこそと2ちゃんねるやってるんで・・・
これでお願いします。
#変数aaaにxxx.txtの1行目を代入します
for aaa in `cat xxx.txt`
do
#変数bbbにxxx.txtの2行目を代入します
bbb=`sed -n '2p'
export=bbb
#変数cccに$iの1列目を代入します
ccc=`cat $i | cut -f1`
export=ccc
#変数dddに$iの2から14列目を代入します
ddd=`cat $i | cut -f2-14`
exprot=ddd
if
#xxx.txtの2行目の先頭行が20の場合は切り出したファイルを結合します
then test $aaa = "^20"
paste ccc.txt tab.txt ddd.txt
elsei
#それ以外の場合はその列をそのままファイルに書き出します
echo aaa.txt
fi
done

129:login:Penguin
08/06/12 18:57:20 RuYhMH5C
>>126
日本語でおk

人に説明するためにやりたいことを整理すると自然に解決したりするものよ。

130:login:Penguin
08/06/12 19:11:00 3DTOjPry
最初に for を持ち出したところからすでに意図がわからん。

131:login:Penguin
08/06/12 19:16:11 kPFkNEQb
perlでやればいいと思うよ

132:126
08/06/12 19:28:24 TxRWHMwb
>>129
ありがとうございます。でもなかなかうまくいかないんです。
>>130
すみません。for文の処理がうまくいかないんで抜粋しました。
>>131
perlは全然わかんないんでなんとかシェルでやりたいです。

133:login:Penguin
08/06/12 20:00:58 48VJya+Z
任意の時間を入力し、それをUTC時間に変換することは可能でしょうか?
dateコマンドだとカレントタイムを変換してしまうので。。

134:login:Penguin
08/06/12 20:55:58 JwqUhAVV
date -u
じゃダメなのかな

135:login:Penguin
08/06/12 21:14:33 lC+5xa2L
それに -d オプションを付けたいんじゃないのかな。

$ date -u -d '2001/5/20 13:33:35 JST'

136:login:Penguin
08/06/12 21:41:49 JqmZrOtu
>>133
awkにあるmktime, strftime関数を使うのが一番手軽かな。


137:133
08/06/12 23:39:42 mOwz8//t
>>134-136
実現できました!
即レス助かりました。ありがとうございます。

138:login:Penguin
08/06/13 08:03:49 TrNV+QBw
>>126 は解決したのだろうか。
俺には意図が解らなかったが。

139:126
08/06/13 09:47:03 j8pwVaea
>>138
心配していただきありがとうございます。まだ未解決です。
簡単にいうと
aaa.txtが
[100]
201
202
203

[200]
301
302
303
となっている場合に
[100] 201
[100] 202
[100] 203

[200] 301
[200] 302
[200] 303
としたいんです。(スペースのところはタブ区切りを入れたいです)
お願いします。

140:login:Penguin
08/06/13 10:12:43 +c/4qhZ/
#!/usr/bin/perl
my $i = '';
while (<>) {
chomp;
if ($_ eq '') {
$i = '';
print "\n";
} elsif ($i eq '') {
$i = $_;
} else {
print "$i\t$_\n";
}
}

141:126
08/06/13 10:25:54 j8pwVaea
>>140
それを今試してみたら
[100]
[100] 201
[100] 202
[100] 203
[100]
[100] 301
[100] 302
[100] 303
みたいになっちゃいました。
せっかくコードを書いていただいたのですがちょっと
結果が違いました。すみません。

142:login:Penguin
08/06/13 10:28:27 5MIbjJC0
> 126

awk 'BEGIN {OFS = "\t";}; $0 != "" {if ($0 ~ /^\[/) section = $1; else print section, $1}' aaa.txt

多分もっと格好よくできるはずなんだけどなぁ

143:login:Penguin
08/06/13 10:38:47 obeusV/U
>>139
gawk '{if(match($0,/^\[[0-9][0-9]*\]$/))t=$0;else{if(length)$0=t "\t" $0;print;}}' aaa.txt

sed -e '/^\[[0-9][0-9]*\]$/{h;d}/^..*/{x;G;s/\n/\t/;p;s/\t.*//;h;d}' aaa.txt

まだ短くならないかな。

144:login:Penguin
08/06/13 10:43:39 +c/4qhZ/
>>141
203 の次の行は空行じゃないの?

145:login:Penguin
08/06/13 10:45:41 +c/4qhZ/
>>126
> #変数eeeにxxx.txtの2行目から15行目を代入します
> #xxx.txtの行の先頭が20から始まる場合
最初と言ってることぜんぜん違うじゃねーか。

146:126
08/06/13 11:04:27 j8pwVaea
>>142
おおおっ。すごいです。ありがとうございます。
で、あまりにも簡単に説明しすぎたせいで少し動作が違いました。
実際にはaaa.txtは複数の列でできています。
[100]
201 100 200
202 100 200
203 100 200
""

[200]
301 100 300
302 100 300
303 100 300
""

あと先頭が数字では始まらないけど文字列が入っている場合もあります。
その列は何も処理をしたくないんです。もちろん空白の列にも何も処理をしたくないです。
説明が不足していてすみません。お願いします。

147:login:Penguin
08/06/13 11:08:06 +c/4qhZ/
どんどん条件変わるな。
もう付き合いきれん。

148:login:Penguin
08/06/13 11:09:51 +c/4qhZ/
>>140 を好きに改造して使ってくれ。

149:login:Penguin
08/06/13 11:57:53 5MIbjJC0
>>126

#!/usr/bin/awk

BEGIN {
OFS = "\t"
}

{
if ($1 ~ /^\[.+\]$/) {
section = $1
} else if ($1 ~ /^[0-9]/ ) {
sub(FS, OFS) # これがいるかどうか分からない
print section, $0
} else {
print
}
}

まぁ暇だし,自分の勉強にもなるしな

150:126
08/06/13 12:12:09 j8pwVaea
>>147
ごめんなさいごめんなさい。許して下さい。
>>148
ありがとうございます。今から試してみます。感謝してます。

151:126
08/06/13 12:24:52 j8pwVaea
>>149
^ syntac error
^ 正規表現が終端がされていません
って出ます。
そのコードを2.awkとして保存してchmod 755 で
./2.awk < aaa.txt > bbb.txt
としたんですけど僕のやりかたが悪かったんでしょうか。
もうちょっと試してみます。すみません。

152:login:Penguin
08/06/13 13:34:55 frtx8yVp
シェルとかプログラミング言語よりも,ちゃんと説明できる日本語を習得するのが先だとしみじみ思う.

153:126
08/06/13 13:45:24 j8pwVaea
awk -f ./2.awk < aaa.txt > bbb.txt で実行できました。すみません。
でも結果としては数字のところにタブが挿入されただけでうまくいきませんでした。
また時間がある時にで結構ですので教えてくださると助かります。よろしくお願いします。

154:126
08/06/13 14:31:16 j8pwVaea
あれれ。すみません。aaa.txtを作って試してみたらうまく動作してました。
元データのほうに何か問題があるようです。確認してみます。

155:126
08/06/13 14:57:25 j8pwVaea
>>149
ありがとうございます。感謝感謝です。
if ($1 ~ /^\[.+\]$/) {

if ($1 ~ /^\[.+\]*$/) {
にして無事動作しました。[]の後ろに文字列が入っているのが原因でした。
本当にありがとうございます。

156:login:Penguin
08/06/15 03:39:35 sc6xQlic
#!/bin/sh
n=`cat text.txt`

で読み込んだ$nに対して
一行ずつ処理を行いたいのですがどうしたらよいでしょうか

for a in $n

を使おうと思ったのですが、スペースでも分割されてしまい
理想の動作をさせることができません
よろしくお願いします

157:login:Penguin
08/06/15 04:58:13 wo2EqLas
cat text.txt | while read line;
do
echo "$line";
done

while read line;
do
echo "$line";
done < text.txt

ダブルクオート

158:login:Penguin
08/06/15 07:24:02 Wqtu/af2
done < text.txt はbash依存だったような

159:login:Penguin
08/06/15 09:18:42 sc6xQlic
>>157
できましたありがとうございます!
whileの中でreadを再び使えば同時に何行まとめて、という処理が出来るんですね

160:login:Penguin
08/06/15 09:44:47 riPFD/ci
>>158
Linux板的にはいいんでないの。 Unix板だったら気にしたほうがいいかもしれんが。


161:login:Penguin
08/06/15 10:19:04 +vOR/R57
>>158
/bin/shでも動くからおk

162:login:Penguin
08/06/15 10:47:11 Wqtu/af2
dashもOKだから、まぁいいのか

163:login:Penguin
08/06/15 12:04:09 MYPOmB3X
そのあたりってPOSIXでちゃんと規定されてるものなの?
単にbashをまねて取り込んだshなのか、真のshからサポートする機能か
どうしたら見分けつけられるのかよくわからない。

164:login:Penguin
08/06/15 12:33:26 +vOR/R57
URLリンク(www.opengroup.org)

165:login:Penguin
08/06/15 12:43:50 cU/mpVoU
bash や dash があるなら、cash もあるのかな。
Csh-Again SHell とか。

166:login:Penguin
08/06/15 12:53:50 MYPOmB3X
>>165
生まれ変わらなくていい。そのまま墓場で寝ててくれ>*csh


167:login:Penguin
08/06/15 12:56:31 MYPOmB3X
>>164
トン。$(command)とか$((expr))って標準だったんだとか色々勉強になるな。




168:login:Penguin
08/06/15 18:20:40 ue0hzIrD
bashで文字列の最後尾が / にあたるものをヒットさせたいのですが、どのようにしたら宜しいでしょうか?

169:login:Penguin
08/06/15 18:49:35 LSl6/nZ+
bashにそんな機能はない

170:login:Penguin
08/06/15 18:53:49 aTr7Cyki
bash()笑

171:login:Penguin
08/06/15 18:54:17 2ND6A6mz
grepで$を使うって話?

172:login:Penguin
08/06/15 19:14:12 AOTtbX65
エスケプすればなんとでも。

173:login:Penguin
08/06/15 19:23:37 lWrIWsAm
>>168
case "$str" in
*/)
  echo "match."
  ;;
*)
  echo "unmatch."
  ;;
esac


174:login:Penguin
08/06/16 02:02:05 irk9chgy
>>168です。仕事が入ってしまいレス遅れました、すいません。
bashにそのような機能はありませんか・・・。
grepでは無く条件式で文字列の末尾を判定させたかったのですが
何も知らない自分としては>>173さんの書いて頂いたのを参考に
しようかと思います。助かりました、有難うございます。

175:login:Penguin
08/06/16 08:11:50 JECOF4SI
>>169に対する皮肉としか読めない。

176:login:Penguin
08/06/16 11:27:24 1Ms3xCVR
#!/bin/csh -f

set s=$1
set t=$2
set f=$3

cat $f | tail +$s | head -$t

exit 0
echo ------------------

以上を改良しろ、と言われました。みなさんならどうしますか?どなたか教えて下さい。

177:login:Penguin
08/06/16 11:28:31 /AfhYEBu
>>176
*csh を使うのをやめる。まずそれからだ。

178:login:Penguin
08/06/16 12:44:56 qvjZYD3V
>>176
速度面で改善ならアセンブリで書き直してやれ

179:login:Penguin
08/06/16 13:59:17 6AAfiJB4
>>176
とりあえずマルチをやめること

180:login:Penguin
08/06/16 23:26:05 gSPrzSdg
>>176
次に日本語を勉強すること

181:login:Penguin
08/06/17 07:40:56 AmqP2Db0
abc
bcd
cde
<abc> hoge hoge
(スペースはタブです)
となっている場合、<abc>の列を削除したい場合
sed 's/\t//g' | sed "s/<abc>*//g" > hoge
だとうまくいかないんですけどどこかおかしいんでしょうか。
ご指摘お願いします。

182:login:Penguin
08/06/17 08:11:56 +a7Qx5aV
>>181
sed 's/^<abc>.*//'

* は「前のものの0回以上の繰り返し」。
シェルの glob と違って「任意の文字列」ではない。

183:login:Penguin
08/06/17 08:57:44 AmqP2Db0
>>182
ありがとうございます。試してみます。

184:login:Penguin
08/06/17 10:01:29 AmqP2Db0
先程はありがとうございました。今度はまた問題が出ました。
aaa
bbb
ccc
ddd
eee
となっているファイルに例えばcccの行にだけ行頭にタブを二ついれたいんですけど
どうすればいいでしょうか。検索してみたんですけどそんなことをする例がないので
わからないです。お願いします。

185:login:Penguin
08/06/17 10:12:39 +a7Qx5aV
>>184
sed 's/^ccc$/\t\tccc/'


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5366日前に更新/243 KB
担当:undef