1: 名無し募集中。。。 2013/12/07(土) 00:08:51.73 0
問題:
ファイルをn行ごと1行にまとめるhoge.sh を作成せよ。
% cat a
a
b
c
d
e
% foge.sh -n 2 a
a b
c d
e
% foge.sh -n 2 -d ":" a
a:b
c:d
e:
ファイルをn行ごと1行にまとめるhoge.sh を作成せよ。
% cat a
a
b
c
d
e
% foge.sh -n 2 a
a b
c d
e
% foge.sh -n 2 -d ":" a
a:b
c:d
e:
2: 名無し募集中。。。 2013/12/07(土) 00:11:37.80 0
remove
3: 名無し募集中。。。 2013/12/07(土) 00:11:45.61 0
C言語じゃだめなんですか
4: 名無し募集中。。。 2013/12/07(土) 00:12:19.24 0
rm -rf
5: 名無し募集中。。。 2013/12/07(土) 00:16:09.30 0
shutdown -h now
7: 名無し募集中。。。 2013/12/07(土) 00:18:17.99 0
ls -l
8: 名無し募集中。。。 2013/12/07(土) 00:18:33.07 0
hello world
9: 名無し募集中。。。 2013/12/07(土) 00:19:05.75 0
exit
10: 名無し募集中。。。 2013/12/07(土) 00:19:10.60 0
service dhcpd restart
12: 名無し募集中。。。 2013/12/07(土) 00:20:34.67 0
top
13: 名無し募集中。。。 2013/12/07(土) 00:22:33.85 i
きょうびBシェルもなあ
つかもう鯖缶ぐらいしかシェル書く現場無いな
つかもう鯖缶ぐらいしかシェル書く現場無いな
17: 名無し募集中。。。 2013/12/07(土) 00:32:42.89 0
入力ファイルをパラメータで指定させるところにセンスがない
標準入力だろJK
それとも複数回走査しないとできんのか>>1は
標準入力だろJK
それとも複数回走査しないとできんのか>>1は
37: 名無し募集中。。。 2013/12/07(土) 08:20:01.99 0
>>17
1 #!/bin/bash
2 NUM=2
3 DELIMIT=' '
4 while getopts n:d: OPT
5 do
6 case $OPT in
7 "n" )
8 NUM=$OPTARG;;
9 "d" )
10 DELIMIT=$OPTARG;;
11 esac
12 done
13 shift `expr $OPTIND - 1`
14 c=0
15 cat "$@" | while read buf
16 do
17 echo -n "$buf"
18 c=$(($c + 1))
19 if [ $c -eq $NUM ]; then
20 echo
21 c=0
22 else
23 echo -n "$DELIMIT"
24 fi
25 done
26 echo
1 #!/bin/bash
2 NUM=2
3 DELIMIT=' '
4 while getopts n:d: OPT
5 do
6 case $OPT in
7 "n" )
8 NUM=$OPTARG;;
9 "d" )
10 DELIMIT=$OPTARG;;
11 esac
12 done
13 shift `expr $OPTIND - 1`
14 c=0
15 cat "$@" | while read buf
16 do
17 echo -n "$buf"
18 c=$(($c + 1))
19 if [ $c -eq $NUM ]; then
20 echo
21 c=0
22 else
23 echo -n "$DELIMIT"
24 fi
25 done
26 echo
18: 名無し募集中。。。 2013/12/07(土) 00:52:29.81 0
startx
21: 5KU1hSz 2013/12/07(土) 01:02:24.99 O
コマンドとシェルスクくべつつけろ > null
22: 名無し募集中。。。 2013/12/07(土) 01:27:09.21 0
外部コマンド使わなくてファイルから入力する方法あったっけ?
23: 名無し募集中。。。 2013/12/07(土) 01:29:29.40 0
ごめんreadがあった・・・
24: 名無し募集中。。。 2013/12/07(土) 01:52:20.67 0
まあオプション取得をシェルスクリプトで書いて
メインの処理をperl 一行かな
メインの処理をperl 一行かな
25: 名無し募集中。。。 2013/12/07(土) 01:52:30.62 0
#!/bin/sh
c=0
while read buf
do
echo -n "$buf"
c=$(($c + 1))
if [ $c -eq 2 ]; then
echo ""
c=0
fi
done < $1
echo ""
とりあえず版
c=0
while read buf
do
echo -n "$buf"
c=$(($c + 1))
if [ $c -eq 2 ]; then
echo ""
c=0
fi
done < $1
echo ""
とりあえず版
26: 名無し募集中。。。 2013/12/07(土) 02:05:57.74 0
cat a | ruby -e 'n=2;d=":";s=STDIN.readlines;s.each_with_index{|l,i|print(l.chomp,(((i+1)%n==0)?"¥n":d));puts if(i+1)%n!=0&&i==s.length-1}'
28: 名無し募集中。。。 2013/12/07(土) 02:08:52.93 0
>>26
化けた
¥はバックスラッシュな
化けた
¥はバックスラッシュな
27: 名無し募集中。。。 2013/12/07(土) 02:07:58.78 0
#!/bin/bash
NUM=2
DELIMIT=' '
while getopts n:d: OPT
do
case $OPT in
"n" )
NUM=$OPTARG;;
"d" )
DELIMIT=$OPTARG;;
esac
done
shift `expr $OPTIND - 1`
c=0
while read buf
do
echo -n "$buf"
c=$(($c + 1))
if [ $c -eq $NUM ]; then
echo
c=0
else
echo -n "$DELIMIT"
fi
done < $1
echo
NUM=2
DELIMIT=' '
while getopts n:d: OPT
do
case $OPT in
"n" )
NUM=$OPTARG;;
"d" )
DELIMIT=$OPTARG;;
esac
done
shift `expr $OPTIND - 1`
c=0
while read buf
do
echo -n "$buf"
c=$(($c + 1))
if [ $c -eq $NUM ]; then
echo
c=0
else
echo -n "$DELIMIT"
fi
done < $1
echo
32: 名無し募集中。。。 2013/12/07(土) 02:28:38.18 0
>>27
完璧だね
shift `expr $OPTIND - 1`
は
shift $(($OPTIND - 1))
でもいいかも
完璧だね
shift `expr $OPTIND - 1`
は
shift $(($OPTIND - 1))
でもいいかも
30: 名無し募集中。。。 2013/12/07(土) 02:14:08.02 0
シェルスクリプトでループ回したら意外に可読性が良い
31: 名無し募集中。。。 2013/12/07(土) 02:22:02.15 0
rubyを使うのはちょっとずるい感じがする
getoptsはギリギリOKなのかな
getoptsはギリギリOKなのかな
34: 名無し募集中。。。 2013/12/07(土) 04:43:57.72 0
確かに鯖缶くらいしかシェルスクリプト扱わないよね
FreeBSDはブート時のサービス立ち上げる処理はsh使ってるけど
LinuxやUNIXは今どうなってるの
FreeBSDはブート時のサービス立ち上げる処理はsh使ってるけど
LinuxやUNIXは今どうなってるの
35: 名無し募集中。。。 2013/12/07(土) 06:12:28.12 0
こういうのは awk が一番お手軽だったんだよな
36: 名無し募集中。。。 2013/12/07(土) 06:40:23.98 0
自分は評価しきれていないけど
http://ja.wikipedia.org/wiki/%E3%A6%E3%8B%E3%B1%E3%BC%E3%B8%E9%8B%E7%BA%E6%8B%E6%B3%95
こんな考え方もあるみたいよ
http://ja.wikipedia.org/wiki/%E3%A6%E3%8B%E3%B1%E3%BC%E3%B8%E9%8B%E7%BA%E6%8B%E6%B3%95
こんな考え方もあるみたいよ
38: 名無し募集中。。。 2013/12/07(土) 08:35:29.54 0
readで読み込むと先頭と末尾のスペース取れちゃうんだよな...
No comments :
Post a Comment