特定の拡張子を持つディレクトリ内のすべてのファイル(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
このコマンドの詳細については、ここで確認できます。スタックオーバーフロー回答。