Cat

從 cat 命令中獲取前 X 個字元?

  • July 15, 2020

我有一個文本文件要輸出到我的 shell 腳本中的一個變數。但是,我只需要前 50 個字元。

我試過使用cat ${filename} cut -c1-50,但我得到的遠遠超過前 50 個字元?這可能是由於cut尋找行(不是 100% 確定),而這個文本文件可能是一個長字元串——這真的取決於。

是否有一個實用程序可以讓我從cat命令中獲取前 X 個字元?

head -c 50 file

這將返回前 50 個字節。

請注意,該命令並不總是在所有作業系統上都以相同的方式實現。在 Linux 和 macOS 上,它的行為方式是這樣的。在 Solaris (11) 上,您需要使用 /usr/gnu/bin/ 中的 gnu 版本

cut如果您使用管道將數據傳遞給它,則您的命令有效:

cat ${file} | cut -c1-50 

或者,避免對 cat 的無用使用並使其更安全:

cut -c1-50 < "$file"

請注意,上面的命令將列印每個輸入行的前 50 個字元(或字節,取決於您的cut實現)。如您所說,如果您的文件是一大行,它應該可以滿足您的期望。

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