首页 > 试题广场 >

处理文本

[编程题]处理文本
  • 热度指数:13207 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
有一个文本文件nowcoder.txt,假设内容格式如下:
111:13443
222:13211
111:13643
333:12341
222:12123
现在需要编写一个shell脚本,按照以下的格式输出:
[111]
13443
13643
[222]
13211
12123
[333]
12341

输入描述:
1


输出描述:
1
示例1

输入

111:13443
222:13211
111:13643
333:12341
222:12123

输出

[111]
13443
13643
[222]
13211
12123
[333]
12341
头像 takooctopus
发表于 2022-01-06 14:42:50
awk -F ":" '{ a[$1] = a[$1] $2 "\n" } END {for (i in a){ printf("[%s]\n%s",i,a[i]) } }' nowcoder.txt 拼接字符串,直接输出即 展开全文
头像 小白学习编程
发表于 2023-06-26 21:43:57
awk -F: '{if(array[$1]==""){array[$1]=$2}else{array[$1]=array[$1]"\n"$2}}END{for(i in array)print"["i"]","\n"array[i]}' nowcoder.txt
头像 牛客958631006号
发表于 2022-05-09 23:10:53
cat nowcoder.txt | sort -t ":" -k 1,1 -sb | awk -F ":" '{if(1 != str){print "["1"]\n"2;str=2;str =2;str=1;}else {print $2}}'
头像 裙下之臣0012
发表于 2024-04-20 12:16:36
#!/bin/bash awk -F ':' '{list["["$1"]"]=list["["$1"]"]""$2"\n"} END{ for(i in list){ 展开全文
头像 有个
发表于 2021-12-20 14:59:50
declare -A map while read line; do arr=(${line/:/ }) if [ map["${arr[0]}"] ]; then map["${arr[0]}"]=${map["${arr[0]}"]}"\n"${arr[1]} e 展开全文
头像 北岛以北
发表于 2024-12-21 12:52:57
#!/bin/bash awk -F ":" '{a[$1]=a[$1]$2 "\n"}END{for(i in a){printf("[%s]\n%s",i,a[i])}}' nowcoder.txt
头像 求请赐我一个offer
发表于 2023-08-24 23:32:42
#!/bin/bash # sort -t 分隔符 -k1n 通过第一个字段排序 -s稳定排序,第一个字段相同时,保证后续稳定 # awk中使用自定义变量不需要 加$ sort -t: -k1n -s nowcoder.txt | awk -F":" 'BEGIN{pre=&q 展开全文
头像 liudelantu
发表于 2024-08-24 22:15:28
#!/bin/bash awk -F ":" ' { arr[$1] = (arr[$1] "\n" $2) } END{ for(i in arr) { printf &quo 展开全文
头像 无言非沉默
发表于 2023-11-08 14:53:20
#!/bin/bash #挺玄学的,自己试着看看 a=`cat nowcoder.txt | grep -E "[1]{7,}"` b=`echo $a | sed -e 's/[1]\{7,\}//2g'` c=`echo $b | sed -e 's/\([1]\{7,\}\ 展开全文
头像 白幽幽
发表于 2024-05-31 16:56:18
#!/bin/bash # 定义一个字典用于存储 declare -A dict while read line; do key=$(echo "${line}" | awk -F':' '{print $1}') value=$(echo "${ 展开全文