2017-03-05 5 views
0

許可されていないため、catまたはstringsなどの他のコマンドは、.txtファイルには読み込みまたは適用できません。私はflag.txtという名前のファイルを読む必要がありますが、このファイルもブラックリストにあります。ですから、headコマンドを使って* .txtを読む方法はありますか? headコマンドが許可されています。head linuxコマンドですべてのテキストファイルを読むには?

blacklist=\ 
'flag\|<\|$\|"\|'"'"'\|'\ 
'cat\|tac\|*\|?\|less\|more\|pico\|nano\|edit\|hexdump\|xxd\|'\ 
'sed\|tail\|diff\|grep\|paste\|strings\|bas64\|sort\|uniq\|cut\|awk\|'\ 
'bzip\|gzip\|xz\|tar\|ar\|'\ 
'mv\|cp\|ln\|nl\|'\ 
'python\|perl\|sh\|cc\|g++\|php\|hd\|g++\|gcc\|curl\|tcp\|udp\|'\ 
'scp\|sftp\|wget\|nc\|netcat' 

おかげ

+0

なぜあなたはどのようなプログラムを使用することができますか? – chepner

+0

彼らはあなたにそれをさせない理由があるのでしょうか? – karakfa

+0

私はこの質問をよく理解していませんが、はい、すべての '* .txt'ファイルの' head -100 * .txt'最初の100行で出力できます。あなたは 'wc -l file'(あなたのリストにない)で行の数を知ることができ、ばかげた行の値を使うことができます。あなたはブラックリストの中に 'rev'を持っていないようですので、' revファイル|レブも。あるいは、 'ed':' ed file'を使い、5を押して 'file'の5行目を表示します。 –

答えて

0

あなたはコマンドhead *.txtのいくつかの代替をしたいですか?その場合、ls/findxargsが役に立ちますが、.txtファイルを識別することはできません。ディレクトリの下のすべてのファイルが読み込まれます。

ls -1| xargs head 
+0

xargsはブラックリストにarを許可しないため使用できません。 –

+0

@LeeGunMoあなたのブラックリストは 'xargs'がそこに現れないので不完全です - あなたの質問が正しいことを確認してください。 –

0

あなたは次のように`backtick)を使用することができます。

head `ls -1` 

バッククォートは、非常に特別な意味を持っています。ファイル名

となります -

`のLS -1`:あなたは バッククォートの間で入力し、すべてがメインコマンド

前にシェルによって評価(実行)されるので、コマンドは次の操作を行いますヘッド - 詳細情報についてバッククォートthis answer

0で見つけることができ

ls -1

にリストされているファイルの先頭を表示します
0

flag.txtに一致するglobが必要ですが、文字列flagではなく*を使用できない場合は、fl[a]g.txtを代わりに使用できます。その後、headを使用してファイル全体を印刷-cを使用すると、ファイルのサイズにそれを渡すために:

head -c $(stat -c '%s' fl[a]g.txt) fl[a]g.txt 

別のアプローチは、ファイルを読み取るためにシェルを使用することです:

while IFS= read -r c; do echo $c; done < fl[a]g.txt 

あなたは可能性がありまた使用するだけですpaste

paste fl[a]g.txt 
関連する問題