単純な文字列を多く作ろうと思ったのですが、その為のコマンドがわかりません。
たとえば、vi-エディタでファイル内に1~10000の数を縦に並べてみようかと思ったのですが、これはひたすらENTERを押して行番号をつけるコマンドを入れるしかないのでしょうか?そもそも第一に、行番号をつけるコマンドで出来た数字はデータとして残るのでしょうか?
また、数字以外でも、縦に a b c d e f ・・・ z aa bb cc dd ・・・ zz aaa bbb ccc ・・・といった一定の規則で並ぶ文字列を一挙に作成できるコマンド等はあるのでしょうか?
また、上記の様な事をさせるときにはviを使う以外に何か方法はあるのでしょうか?e-macsを使ってC言語?でシェルスプリクト??を上手く使えばできる、と言われたのですが、それをするとひたすら1~10000個のファイルがカレントディレクトリに生成されてしまいました。
Linux、始めたばかりでよくわからないのですが(一応基本コマンド程度はマスターしましたが)よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> 1~10000の数を縦に並べてみようかと思ったのですが
考え方は人それぞれでいろいろなやり方があると思いますが、
思いついたものを書いておきます。
・vi
空行を作成し、その行をddで削除した後、
10000p (数字分貼り付けを繰り返す)コマンドを実行すると、
10000行分の空行が出来ます。
それを例えば、test.txtという名前で保存した後に
コマンドで、cat -n test.txt > test2.txt
とすると、1~10000までの番号がついたファイルがtest2.txtとして出来ます。
・emacs
Esc 10000 Enter
とバッファ上で入力した後に、保存すると10000行の空行ができるので、
保存してviの時と同じようにcat -nコマンドを実行する。
・シェルスクリプト
==== test.sh ===============
#!/bin/sh
cnt=0
while [ $cnt -ne 10000 ]; do
echo $cnt
cnt=`expr $cnt + 1`
done > test.txt
============================
を実行すると、test.txtというファイルが出来ます。
> また、数字以外でも、縦に a b c d e f ・・・ z aa bb cc dd ・・・ zz aaa bbb ccc ・・・といった一定の規則で並ぶ文字列を一挙に作成できるコマンド等はあるのでしょうか?
一つ一つのコマンドの動作は簡単なものですが、
組み合わせることでいろいろなことができるようになります。
発想次第ですね。
単純にスクリプトを書くと、
===== test2.sh =================
#!/bin/sh
WORD="a b c d e"
echo $WORD
cnt=1
cnt2=0
while [ $cnt -lt 10 ]
do
for f in $WORD
do
while [ $cnt2 -lt $cnt ]
do
echo -n $f
cnt2=`expr $cnt2 + 1`
done
cnt2=0
echo -n " "
done
cnt=`expr $cnt + 1`
echo
done
===================================================
sedやawkを使う人も多いでしょうし、perlなんかでも簡単にできそうです。
ありがとうございました。
無事にファイルが作成できました。
詳しい説明、わかり易い解説をありがとうございました。
また何かあったときには、是非よろしくお願いします。
No.4
- 回答日時:
> また、数字以外でも、縦に a b c d e f ・・・ z aa bb cc dd ・・・ zz aaa bbb ccc ・・・といった一定の規則で並ぶ文字列を一挙に作成できるコマンド等はあるのでしょうか?
コマンドラインから
perl -le "$i=q(a); print $i++ until $i gt q(zz)"
でその間の文字列を生成できます。
aとzzを変えて使ってください。
No.1
- 回答日時:
即興で作ってみました。
以下のスクリプトを test.pl として保存し、
perl test.pl 保存先ファイル名
で実行してみてください。
perl はたいていの環境で動作するはずです。
---
use strict;
my ($ct);
if( @ARGV < 1 ){
print "ファイル名を指定してください。\n";
exit;
}
print "savefile = " . $ARGV[0] . "\n";
open(FILE, ">" . $ARGV[0]) or die "Can't Save";
for( $ct=1; $ct<=10000; $ct++){
print FILE $ct . "\n";
}
close(FILE);
---
>数字以外でも、縦に a b c d e f ・・・ z aa bb cc dd ・・・ zz aaa bbb ccc ・・・といった一定の規則で並ぶ文字列を一挙に作成できるコマンド等はあるのでしょうか?
聞いたことが無いです。
ただ、このような命題は、どんなプログラムの本でも最初のほうに出てくるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- その他(OS) DOSコマンド『dir』の『/o』オプション 3 2023/03/10 09:29
- ノートパソコン なかなかに酷い状況です。ノートパソコンのPINを忘れてしまいました。「PINを忘れた」を押してアカウ 2 2023/02/18 15:32
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
FTP接続中のコマンド実行結果を...
-
Linux shell ftp 転送 エラー制御
-
Warning: Output is not to
-
ディレクトリ一覧を表示
-
Illustratorのデータをまとめて...
-
コマンドプロンプトにてコマン...
-
Windows10のRegSys32に登録され...
-
MS-DOS ver. 6.20 で。
-
ACCESSでセキュリティ警告が出...
-
GNOME端末の起動 及び コマンド...
-
linuxでの実行中のプログラムの...
-
rcpコマンドについて、教えて!
-
viエディタを使って楽に打ち込...
-
batファイルから起動したscrフ...
-
Viで書き込もうとすると、保...
-
cshの標準出力を制御したい
-
cygwinシェルスクリプト内での...
-
FTPコマンドの戻り値について
-
書き込み権限が無いためコピー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
DOSコマンドでのワイルドカ...
-
Illustratorのデータをまとめて...
-
属性変更できないです。
-
rcpコマンドについて、教えて!
-
AIX ksh利用 grep 検索で マ...
-
Windows10のRegSys32に登録され...
-
Linux shell ftp 転送 エラー制御
-
IBM漢字コードのSJIS変...
-
FTP接続中のコマンド実行結果を...
-
cactiでグラフが表示されない
-
minicomでよく使うコマンド文字...
-
【ターミナル】MacBookにディー...
-
lsコマンドで表示するファイル...
-
telnet,rlogin,rshの違いってな...
-
UNIXシェル内での日付計算
-
残り日数のカウント方法について
-
DOSのAUTOEXEC.BATの書き方、等
-
別名でリンク先を保存。
-
GNOME端末の起動 及び コマンド...
おすすめ情報