- - PR -
シェル内でのreadコマンド
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-25 11:33
お疲れ様です。
#環境ですが、ReaHatAS2.1/文字コードSJISです。 元ファイル(A)の内容を読み込みし、 奇数行の後に偶数行の行をつなげて、 新規ファイル(B)を作成する シェルスクリプトを作成しています。 奇数行の末尾がスペースで終了するとき 新規ファイル(B)のスペース部分が 潰されてしまうようです。 回避方法をご存じの方がいらっしゃいましたら、 教えてください。 よろしくお願いします。 以下、ソースの一部 -------------------------------------- do if [ "$RecBuf" != "" ] then if [ `expr $LINES % 2` = 0 ] then GUSU="$RecBuf"; echo "$GUSU" >> data.txt echo "$KISU""$GUSU" >> ${SCM3_BAK}/${TMPFILE} else KISU="$RecBuf"; fi LINES=`expr $LINES + 1` fi done -------------------------------------- |
|
投稿日時: 2005-02-25 14:01
ちょっと環境は違うのですが、読み込む前に$IFS(区切り文字)の設定を変えて
読み込んではいかかでしょうか? IFS=, export IFS : : while read LINE; do : : done < sourcefile # ただし、この例の場合は","がファイルに無いことが前提ですが。 # ","が使われている場合はファイル内に存在しない記号を区切り文字 # とすれば良いです。 [ メッセージ編集済み 編集者: 四十路 編集日時 2005-02-25 14:14 ] |
|
投稿日時: 2005-02-25 14:03
perlかawkではだめですか?
---- awk '{s0=$0;if(getline==0)$0="";printf("%s%s\n",s0,$0)}' infile >outfile _________________ おしえて〜。せんせ〜いさ〜ん。 [ メッセージ編集済み 編集者: ほろりん 編集日時 2005-02-25 14:12 ] |
|
投稿日時: 2005-02-25 15:24
SED の古典芸能の時間です、2行連結
sed -e "N; s/\n//" u.txt |
|
投稿日時: 2005-02-25 15:35
まっくです。
皆さん、返信ありがとうございます。 どれも期待したファイルができあがりました。 ただ、今回のファイルはカンマがあり得るので ほろりんさんかMMXさんの案でいきたいと思います。 ありがとう。 |
1