Linux

ディスク使用状況を確認する

df -h

ホスト名を確認する

uname -n

文字コードの置換(UTF-8 → SHIFT-JIS)

iconv -f utf-8 -t cp932 data.csv -o data_sjis.csv

文字コードの置換(SHIFT-JIS → UTF-8)

iconv -f cp932 -t utf-8 data_sjis.csv -o data.csv

改行文字の置換(CRLF → LF)

sed -i 's/¥r//g' target_file

改行文字の置換(LF → CRLF)

sed -i 's/$/¥r/g' target_file

正規表現で「行頭」を表現する

「^」で表現。

条件に一致するディレクトリ内の複数ファイルについて内容を取得し、区切り線を入れながら新しいファイルとして出力する

for dir in `find NUMBER* -maxdepth 0 -type d`; \
do echo > ./$dir/new_file_name_$dir.log; \
  for i in `tree -if /log_directory/$dir/ | grep .log`; \
  do echo -------- $i -------- >> ./$dir/new_file_name_$dir.log; \
    cat $i | grep -e WARNING: -e ERROR: >> new_file_name_$dir.log; \
    echo >> new_file_name_$dir.log; \
  done; \
done;

一括リネーム(サブディレクトリ内のファイルも対象)

for i in `tree -if --charset=C /home/user/ | grep .csv`; \
  do echo ----- $i -----; \
  rename before_text after_text $i; \
done;

-i ... 階層構造をなくす
-f ... フルパスで表示する
--charset=C ... 罫線の文字化けを回避する

ファイルを指定行数で分割する

split -l [分割する行数] [分割するファイル] [分割後ファイルのプレフィックス]

直前のコマンドの返り値を取得して表示

echo $?

ファイル名を一括変更する

for i in `tree -if /home/data/data_*.csv`; do rename before_name after_name $i; done

ファイル名を変更しながら複製する

for i in `ls /home/data/data_*.csv`; \
do cp -a $i `echo $i | sed "s/beforetxt/aftertxt/g"`; \
done

ファイルの所有者を変更する

chown user:group target_file