質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

749閲覧

Shellのfind文。1行目とファイル名の前の./を削除してファイル出力したい

MacB

総合スコア8

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/11/21 12:44

編集2021/11/21 19:10

shell

1% find . 2. 3./ft_magic 4./ii 5./test1 6./.test0 7./test3 8./test2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

AWK 使うなら

awk

1find . | awk 'NR>1{print substr($0,3)}'

シェルだけでやるなら

bash

1find . | \ 2while IFS=/ read x y 3do 4 if [ $y ] 5 then 6 echo $y 7 fi 8done

--- 追記 ---

ところで -type fで実行したところawkコマンドではft_magicが消えてしまいます。なぜでしょうか。

"." はディレクトリなので表示されない
無条件に一行目をスキップするので、上記の場合一行目に来る "ft_magic" がスキップされる
と思われます。

またwhile文はうまく行ったのですが同じ命令文で問題ありませんか?

上記は(結果的に) "/" を含まないものをスキップしている
"-type f" が無い場合はスキップするし、ある場合はなにもしない
という動きになります。
--- 追記 ---
"NR>0" とするくらいなら無くてもいいスよ~

bash

1find . -type f | awk '{print substr($0,3)}'

投稿2021/11/21 13:31

編集2021/11/22 11:11
takasima20

総合スコア7464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MacB

2021/11/21 17:42 編集

ありがとうございます。うまくいきました。 ところで -type fで実行したところawkコマンドではft_magicが消えてしまいます。なぜでしょうか。 ``` ls -l ft_magic -rw-r--r-- 1 XX 2020 0 Nov 21 21:11 ft_magic ``` またwhile文はうまく行ったのですが同じ命令文で問題ありませんか?
MacB

2021/11/22 03:18

>無条件に一行目をスキップするので、上記の場合一行目に来る "ft_magic" がスキップされると思われます NR>0で解決しました。 >上記は(結果的に) "/" を含まないものをスキップしている >"-type f" が無い場合はスキップするし、ある場合はなにもしないという動きになります。 `-type f`があるときはif文なしでecho実行して問題ないということですね。それでうまくいきました。
guest

0

bashなら

bash

1shopt -s dotglob ; find *

shopt -s dotglob* でカレントディレクトリの.で始まるファイルやディレクトリも展開させるためです。必要なければ要りません。
shopt -s dotglob を解除するにはshopt -u dotglobです。

投稿2021/11/21 13:06

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MacB

2021/11/21 16:51

知りませんでした。 ありがとうございます。
MacB

2021/11/21 17:09

隠しファイルが表示されなくなるのはドットで始まる行を削除しているからですか? また、`type -f`をつけてもディレクトリが表示されるのはなぜでしょう?
itagagaki

2021/11/22 03:32

隠しファイルとは何のことですか?Linuxですよね? type -f ではディレクトリは現れないはずなので勘違いでしょう。 具体例を示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問