我有bash腳本會合並大量的文本文件並對其進行過濾。不過,由於巨大的列表,我會遇到'參數線太長'的錯誤。echo -e cat:參數行太長
echo -e "`cat $dir/*.txt`" | sed '/^$/d' | grep -v "\-\-\-" | sed '/</d' | tr -d \' | tr -d '\\\/<>(){}!?~;.:+`*-_ͱ' | tr -s ' ' | sed 's/^[ \t]*//' | sort -us -o $output
我在這裏看到了一些類似的答案,我知道我可以使用find和cat來修正它。但是,我想知道什麼是使用echo -e和cat運行單行代碼的最佳方式,而不會破壞代碼並避免參數行太長的錯誤。謝謝。
是否有您使用'echo -e'的原因?你是否真的想將文本文件中的轉義序列改變成它們所代表的字符? – 2014-10-08 03:35:26
通常,避免argument-list-too-long錯誤的正確方法是使用一個命令,該命令在參數不適合所有參數時運行多個命令。 'find「$ dir」-name「* .txt'-exec cat'{}'+'是一個典型的例子。 – 2014-10-08 03:38:27
是我需要改變轉義序列。 ;( – 2014-10-08 03:57:07