![1つを除くCatファイル[重複]](https://linux33.com/image/78439/1%E3%81%A4%E3%82%92%E9%99%A4%E3%81%8FCat%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%5B%E9%87%8D%E8%A4%87%5D.png)
特定の拡張子を持つディレクトリ内のすべてのファイル(1つを除く)をリンクする方法を探しています。良い:
cat *.txt !(DISCARD.txt) > catKEPT
これにより、DISCARD.txtを除くディレクトリ内のすべての* .txtファイルをリンクする必要があります。
答え1
find . -maxdepth 1 -iname '*.txt' -not -name 'DISCARD.txt' -exec cat {} +>catKEPT
答え2
bash
(ほとんどの場合)を使用している場合は、extglob
シェルオプションを使用できます。このオプションは、より強力なパターンマッチング構文でシェルを拡張します。
で開閉shopt -s extglob
できますshopt -u extglob
。
あなたの例では、次のことを行います。
$ shopt -s extglob
$ cat -- !(DISCARD).txt > catKEPT
このコマンドの詳細については、ここで確認できます。スタックオーバーフロー回答。