質問するログイン新規登録

回答編集履歴

2

誤字訂正

2020/05/01 10:20

投稿

otn
otn

スコア86380

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  エラーの直接の原因は、2行目の全角空白でしょう。
2
2
 
3
- また、`sort $TranArchivePath/*.csv`だとファイルの中身をソートするので、ファイル名ソートにはなりません。`sort`コマンドを使わなくても`ls -r`でファイル名の逆順にリストされます。
3
+ また、`sort $TranArchivePath/*.csv`だとファイルの中身をソートするので、ファイル名ソートにはなりません。`sort`コマンドを使わなくても`ls -r`でファイル名の逆順にリストされます。
4
4
 
5
5
  方針としては、既にある回答のように、10個あるとか無いとか場合分けをしないのが良いです。
6
6
 

1

追記

2020/05/01 10:20

投稿

otn
otn

スコア86380

answer CHANGED
@@ -1,3 +1,12 @@
1
1
  エラーの直接の原因は、2行目の全角空白でしょう。
2
2
 
3
+ また、`sort $TranArchivePath/*.csv`だとファイルの中身をソートするので、ファイル名をソートにはなりません。`sort`コマンドを使わなくても`ls -r`でファイル名の逆順にリストされます。
4
+
3
- 方針としては、既にある回答のように、10個あるとか無いとか場合分けをしないのが良いです。
5
+ 方針としては、既にある回答のように、10個あるとか無いとか場合分けをしないのが良いです。
6
+
7
+ ```sh
8
+ ls -r $TranArchivePath/*.csv | tail -n +11 | xargs -r rm
9
+ ```
10
+ また、ファイルが10個以下の場合は`xargs`には何も渡らないので、その場合`rm`を実行しないよう`xargs -r`とします。
11
+
12
+ 上記は、(スクリプトファイルに書くのでなく)コマンドラインから打つときは、`ls`は`alias`されていることが多いので、`ls`でなく`\ls`あるいは`/bin/ls`と入力します。