Coreutils
如果字元串中有空格,我還能在字元串上使用 tsort 嗎?
coreutils 手冊說
tsort 將其輸入讀取為字元串對,用空格分隔,表示部分排序。
如果一個字元串中有一個空格,根據手冊,我不能在它和其他字元串上使用 tsort 。如何仍然在字元串和其他字元串上使用 tsort?謝謝。
如果某些輸入字元串包含空格,則不能直接使用 tsort。
您可以檢查原始碼,您會看到分隔符被硬編碼為空格、製表符和換行符,並且沒有更改它們的選項。
如果您想在單詞可能包含空格的數據集上使用 tsort,我的建議是預處理數據集以將空格編碼為非空白字元(或非空白字元序列),然後執行 tsort on它並最終對最終輸出進行後處理,以將其解碼回原始空白。
您可能可以
sed
用於預處理和後處理步驟。使用哪個字元來編碼空格取決於您的數據集,如果還有其他無效字元(例如#
or@
,$
or\
),也許您可以直接使用它們。否則,您可能需要考慮兩個字元編碼(例如,將空格編碼為\s
)並包括一種對引用字元本身進行編碼的方法(例如\\
,對單個退格進行編碼。)