簡體   English   中英

如何使用linux限制行中存在的字符串長度

[英]how to restrict length of string present in a line using linux

我有以下形式的數據:

num1    This is a string
num2    This is another string

我想限制在第一個標簽之后的所有字符串的長度。這樣長度(字符串)<4。 因此,我得到的輸出是:

num1    This is a string
num2    This is another 

我可以使用python來做到這一點。 但我試圖找到一個Linux等價物,以實現相同。

在bash中,您可以使用以下命令限制字符串,在本例中,從索引0到索引17。

$ var="this is a another string"

$ echo ${var:0:17}

this is a another

使用 ,按列:

$ awk '{print $1, $2, $3, $4}' file

或者用

sed -r 's@^(\S+\s+\S+\s+\S+\s+\S+).*@\1@' file

或使用的長度:

$ cut -c 1-23 file

如果您想截斷字邊界上的字符串,可以使用帶-s選項的fold

awk -F"\t" '{
    printf "%s\t", $1; system(sprintf("fold -sw 17 <<< \"%s\" | sed q", $2))
}'

缺點是需要為每一行調用foldsedsed qtail -n1相同)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM