我正在尋找最簡單和最可讀的方法來從路徑中刪除一個字段。例如,我有/這/是/我/複雜/路徑/在這裏,我想從字符串中刪除第五個字段(「/複雜」),使用bash命令,以便它/ /這/是/我自己的路。 我能做到這一點與從路徑中刪除一個目錄組件(字符串操作)
echo "/this/is/my/complicated/path/here" | cut -d/ -f-4
echo "/"
echo "/this/is/my/complicated/path/here" | cut -d/ -f6-
,但我想在短短的一個簡單的命令完成這件事,一些想
echo "/this/is/my/complicated/path" | tee >(cut -d/ -f-4) >(cut -d/ -f6-)
除了這行不通。
謝謝。這解決了我的問題。但是,我很好奇:是否可以將一個命令的結果提供給兩個命令? – bob 2012-04-25 14:44:22
你可以這樣做:'echo hello | (sed's/l/L/g')| sed's/h/H/g''但是請注意,第一個'sed'的輸出也會通過第二個sed,或者像你原來的文章'echo hello | (sed's/l/L/g')>(sed's/h/H/g')',但你會得到三份。 – ams 2012-04-25 15:52:09
嗯,你可以避免像這樣''echo hello | tee>(sed's/l/L/g'>/dev/tty)| sed's/h/H/g',但它只能在終端會話中使用,當然,否則,您需要您自己的命名管道。 – ams 2012-04-25 15:57:59