gpt4 book ai didi

从每行的第一个单词开始,在特定长度后修剪字符的 Shell 脚本

转载 作者:行者123 更新时间:2023-12-02 04:03:51 25 4
gpt4 key购买 nike

我正在编写一个 shell 脚本来完成以下任务。
我有一个这样的文件:

abcdfgfehg   124353552455
ldnaslbbdaj 134314314344
sdsdbbdbu 134134134314
auosdbo 141413434444
ihjidiqwdnowqdn 134134141232

我希望输出文件是
abcdfgfeh 124353552455
ldnaslbbd 134314314344
sdsdbbdbu 134134134314
auosdbo 141413434444
ihjidiqwd 134134141232

也就是说,所有名称(每行的第一个单词)应减少到 9 个字符,并修剪剩余的字符。之后是一个空格。然后是名称的值。

我知道 awk 命令打印每行的第一个单词。
awk '{print $1}' ./input.txt

但是如何修剪文件中的字符,使每个单词的长度为 9,并且它的值从一个空格开始。

最佳答案

一个简单的 printf 会做 -

awk '{printf ("%-10.9s%s\n", $1,$2)}' file

测试:
[jaypal:~/Temp] awk '{printf ("%-10.9s%s\n", $1,$2)}' file
abcdfgfeh 124353552455
ldnaslbbd 134314314344
sdsdbbdbu 134134134314
auosdbo 141413434444
ihjidiqwd 134134141232

测试 2:
[jaypal:~/Temp] cat file
abcdfgfehg 1243535ABCD55
ldnaslbbdaj 134314314344
sdsdbbdbu 134134134314
auosdbo 141413434444
ihjidiqwdnowqdn 134134141232

[jaypal:~/Temp] awk '{printf ("%-10.9s%s\n", $1,$2)}' file
abcdfgfeh 1243535ABCD55
ldnaslbbd 134314314344
sdsdbbdbu 134134134314
auosdbo 141413434444
ihjidiqwd 134134141232

关于从每行的第一个单词开始,在特定长度后修剪字符的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com