Bash

結合大括號擴展和輸出重定向

  • July 4, 2014

通常,我在命令行上使用參數擴展,例如

cp a.{ext1,ext2}

這是擴展到

cp a.ext1 a.ext2

但是,在很多情況下我不使用cp,而是另一個工具,讓我們稱之為它cat,我會做一些輸出重定向,比如

cat a.ext1 > a.ext2

在我的情況下a,可能會有所不同,或者很長,所以我希望能夠使用某種大括號擴展,至少只需要a在單行中出現一次。我怎樣才能得到它?

我專門使用

$ bash --version
GNU bash, version 3.2.51(1)

但也感謝使用其他外殼的答案。

您可以鍵入:

$ cat very-long-filename.ext1Ctrl+WCtrl+Y>Ctrl+YBackspace2

或者:

$ cat very-long-filename.Ctrl+WCtrl+Y`ext1`>Ctrl+Yext2

要真正使用大括號擴展,請注意:

cat a.ext1 > a.ext2

也可以寫成:

cat > a.ext2 a.ext1

但是你不能這樣做:

cat > a.ext{2,1}

但是,您可以這樣做:

eval cat \> a.ext{2,1}

關於什麼:-

f=really-long-filename; cat "$f.ext1" > "$f.ext2"

引用自:https://unix.stackexchange.com/questions/140501