LoginSignup
0
1

Linuxテキスト処理コマンド問題

Posted at

問題:/etc直下のファイル数、ディレクトリ数の合計を調べよ。

$ ls /etc | wc -l

ポイント:
lsは出力先がコンソールだと1行で表示されリダイレクトだと改行される。
以下で試すとわかる。

$ ls / | cat

問題:/etc直下のファイルをファイルサイズの大きい順に並べよ。

$ ls -l /etc | sort -rn -k 5

問題:/etc/passwdの7列目のみを表示せよ。

$ cat /etc/passwd | cut -d : -f 7

問題:/etc/passwdの7列目のみを重複を省いて表示せよ。

$ cat /etc/passwd | cut -d : -f 7 | sort | uniq

問題:/etc/passwdの7列目のみを重複を省いた上で、出現回数の多い順に表示せよ。

$ cat /etc/passwd | cut -d : -f 7 | sort | uniq -c | sort -rn

問題:/etc/passwdの列の区切り文字をカンマにして表示せよ。

$ cat /etc/passwd | tr : ,

問題:/etc/passwdの改行を削除して表示せよ。

$ cat /etc/passwd | tr -d "\n"

問題:output.logへの追記をリアルタイム表示して監視せよ。

$ tail -f output.log

問題:以下のコマンドの結果から2021.txtはどうなっているか想像せよ。

$ cat -n 2020.txt
     1  Hokkaido
     2  Kyoto
     3  Okinawa
     4  Tokyo
     5  Kanagawa
     6  Osaka
     7  Nara
     8  Nagano
     9  Fukuoka
    10  Ishikawa
$ diff 2020.txt 2021.txt
5d4
< Kanagawa
6a6,8
> Kanagawa
> Fukuoka
> Nagasaki
9d10
< Fukuoka

diffの結果はユニファイド形式の方が分かりやすい。

$ diff -u 2020.txt 2021.txt
--- 2020.txt    2023-12-19 17:46:17.502831155 +0900
+++ 2021.txt    2023-12-19 18:19:52.896839644 +0900
@@ -2,9 +2,10 @@
 Kyoto
 Okinawa
 Tokyo
-Kanagawa
 Osaka
+Kanagawa
+Fukuoka
+Nagasaki
 Nara
 Nagano
-Fukuoka
 Ishikawa

答え:

$ cat -n 2021.txt
     1  Hokkaido
     2  Kyoto
     3  Okinawa
     4  Tokyo
     5  Osaka
     6  Kanagawa
     7  Fukuoka
     8  Nagasaki
     9  Nara
    10  Nagano
    11  Ishikawa
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1