列印文件行及其長度的腳本

列印文件行及其長度的腳本

我正在執行一項任務,要求我創建一個腳本,該腳本獲取文件名作為參數,然後它應該打印文件中的所有行以及它們末尾的長度,例如:banana milk = >香蕉牛奶11 unix 和linux => unix 和linux 14 macbook pro =>macbook pro 11

答案1

這會列印檔案中的每一行,後面跟著行的長度(就字元數而言,不包括 POSIX 相容的 awk 實作中的行分隔符,儘管有些會給出位元組數)。

<FOO awk '{print $0,length}'

不確定這是否是你要問的。

答案2

awk解決方案是最好的解決方案,但是,如果您不想使用 awk,這裡有一些替代方案:

while IFS= read -r line
do
        printf "%s %d\n" "$line" "${#line}"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(expr "$line" : '.*')"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(printf "%s" "$line" | wc -c)"
done < "$1"
while IFS= read -r line
do
        printf "%s %d\n" "$line" "$(wc -c <<< "$line")"
done < "$1"

wc -c <<< "$line"變體將給出比其他數字高一個的數字,因為它包含換行符。

答案3

不太確定您在尋找什麼。以下腳本應該準確地給出您想要的輸出。

#!/bin/bash
cat $1
cat $1 | wc -m

相關內容