我有一个以数字,字符或逗号结尾的文件:
file1.txt
1 101 111 BCX A@WWW 123
1 101 111 BCX A@WWW 123;;;;;;
1 298 306 CCC A@QQQ 234-ck
1 298 306 CCC A@QQQ 234-ck;
1 298 306 CCC A@QQQ 234-ck ;;
1 299 308 CCD A@QQQ 234-cJ
1 299 309 DDD A@ZZZ 345;678
1 299 309 DDD A@ZZZ 345;678
输出应为:
1 101 111 BCX A@WWW 123
1 101 111 BCX A@WWW 123
1 298 306 CCC A@QQQ 234-ck
1 298 306 CCC A@QQQ 234-ck
1 298 306 CCC A@QQQ 234-ck
1 299 308 CCD A@QQQ 234-cJ
1 299 309 DDD A@ZZZ 345;678
1 299 309 DDD A@ZZZ 345;678
我所做的只从最后删除一个逗号:
cat file1.txt | sed 's/;$//g'
1 101 111 BCX A@WWW 123
1 101 111 BCX A@WWW 123;;;;;
1 298 306 CCC A@QQQ 234-ck
1 298 306 CCC A@QQQ 234-ck
1 298 306 CCC A@QQQ 234-ck ;
1 299 308 CCD A@QQQ 234-cJ
1 299 309 DDD A@ZZZ 345;678
1 299 309 DDD A@ZZZ 345;678
如何从文件末尾删除所有&#34 ;;"直到我看到一个字母/数字?
答案 0 :(得分:2)
修改你的sed,不需要猫
sed 's/;*$//' infile
使用awk
awk '{sub(/;*$/,"")}1' infile