[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/10 13:03 / Filesize : 248 KB / Number-of Response : 977
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト相談室



1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ]
シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。 


952 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:55:37 ]
>>951
やりたいことが判らん。awkを使う理由が判らん。手元で再現できん。
つーか、折角awkを使うならawk -F, '{print $2 "AAA";}'じゃいかんの?

953 名前:951 mailto:sage [2008/06/16(月) 15:09:30 ]
>>952
レスありがとうございます

やりたい事としては
ファイルから1行読み込んで1行をパースし
FUGAと連結した文字列を別のコマンドを実行させたい

です

1行の内容としては
aaaaa,hogehoge mogemoge aiueo

という風に書きましたが実際には
aaaa,SQL文
という感じで半角スペースやカンマが入ります



954 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:16:15 ]
>>953
他人の話をよく聞きなさいって言われたことないか?
>952をよく読んで、為すべきことを為してから出直せ。
それから、自分の書いた文章を読み返す癖をつけた方がいい。
とてもじゃないが、他人に読んでもらう文章になっていないぞ。

955 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:48:40 ]
>>954
>>952に書いてある内容は理解しています

    MOGE=`echo "$LINE" | cut -d , -f 2-`

の代わりとなる部分だと言うことは解っているのですが
>>953にも書いてある通りカンマ等が入ってしまう為記述が簡単な
    MOGE=`echo "$LINE" | cut -d , -f 2-`
を選びました

951にカンマ等が複数入る可能性があるという事を
書かなかったのはすみませんでした


956 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 16:11:07 ]
cut -d',' -f2-

957 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 16:18:10 ]
~> L="123,uio poi"
~> LB=`echo $L | cut -d',' -f2-`
~> echo $LB
uio poi
~>

958 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:05:34 ]
違ったか・・・

959 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:03:53 ]
tr -d '\015' < hoge.txt | awk ...


960 名前:デフォルトの名無しさん [2008/06/17(火) 11:26:10 ]
#!/bin/csh -f

set com=$0

if ($#argv < 1 || $#argv > 3) then
echo Usage:$com start_line total_lines '[file_name]'
exit 1
endif
if ($#argv == 2) then
set s=$1
set t=$2
tail +$s | head -$t
else
set s=$1
set t=$2
set f=$3
cat $f | tail +$s | head -$t
endif

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

これだとエラーがでます。どなたか改良してください。お願いします。




961 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:27:38 ]
酷いマルチ

962 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:28:46 ]
bashで
while read LINE; do
echo $LINE
done < ファイル

とするとファイルに含まれてるタブ文字が
半角スペースに変換されて表示されるのですが
そのまま取り出したい場合どうすればいいのでしょう?

cat ファイル | whileやfor LINE in `cat ファイル`等はやってみました


963 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:57:10 ]
echo "$LINE"


964 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:05:16 ]
>>963
うまくいきました
ありがとう

そんな単純な事に気づかなかったとはorz


965 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:30:18 ]
KORNシェルの質問です。よろしくお願いします。

テキストファイル

id=tanaka age=25
id=takahashi age=2           
id=suzuki age=44



id age
---------------------
id=tanaka age=25
id=takahashi age=2          
id=suzuki age=44

にしたい(体裁を整えたい)です。$@を使ってできますか?
変数wkにabc=e があったとして、=があるかどうかわかりますか?
grepやcutコマンドは変数を対象に使えませんよね・・?

966 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 21:42:13 ]
訂正です。体裁が整ってない。
idなら10文字以下でもスペースで10文字にして(これはtypedef使いました)
=の前を見出しに出力して、=の後を----の下に書きたいんです。

id age
---------------------
tanaka    25
takahashi   2          
suzuki    44

よろしくお願いします

967 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:25:03 ]
IFS="=$IFS"
FIRST=t

while read line
do
    set -- $line
    if [ "$FIRST" ]
    then
        printf "%-10s %s\n" "$1" "$3"
        echo "---------------------"
        FIRST=
    fi
    printf "%-10s %2d\n" "$2" "$4"
done

968 名前:デフォルトの名無しさん [2008/06/30(月) 23:38:57 ]
>>967san
有難うございます!今試せないので明日、速攻でやってみます!



969 名前:デフォルトの名無しさん [2008/07/04(金) 23:36:23 ]
質問させてください。
diffの結果を見易く整形するツール等はありますでしょうか。
環境はCENTOSです。よろしくお願いします。

970 名前:969 mailto:sage [2008/07/04(金) 23:37:57 ]
すいません。追記します。
シェルスクリプト内で使いたいので、
ツールでもコマンド的なものだとありがたいです。



971 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 00:17:24 ]
diff -u


972 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 00:19:45 ]
>>969
> diffの結果を見易く整形

kwsk



973 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:23:42 ]
>972
このファイルだけサイズが違いますよとか
このファイルはこっちにありませんよとかが希望です。
ls -Rlaの結果をファイルにリダイレクトしてます

974 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 07:42:01 ]
ファイルの差分はいらないのね

find dirA -exec wc -c {}; > /tmp/A
find dirB -exec wc -c {}; > /tmp/B
diff /tmp/A /tmp/B

あるいは単純に
diff -r --brief dirA dirB 2>&1


975 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:20:19 ]
私はこんなスクリプト作ってる。
--
#!/bin/sh -f
DIFF="/bin/diff -u"

lsd()
{
find $1 -type f -ls | awk '{printf("%10d %s %2s %5s %s\n", $7, $8, $9, $10, $11);}' | sort +4
}

lsd $1 | sed -e "s- $1- $2-" > /tmp/$$
lsd $2 | $DIFF /tmp/$$ -
rm /tmp/$$
--
これで一応ファイルサイズとタイムスタンプも比較できる。

976 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:59:08 ]
>>975
・空白のあるファイル名の扱い
・日付の出力形式の仮定
に問題。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef