如何使用sed删除字符串中的双重空格

时间:2017-06-11 08:44:11

标签: bash shell awk sed grep

如何删除文件中特定字符串的第22和第23位的空格?

以下示例和预期结果。

<?php

  $id=$_REQUEST['id'];
  $query="SELECT * FROM `category` ORDER BY name ASC" ; 
  $result=mysqli_query($con,$query);
  while($row=mysqli_fetch_array($result)){
?>
<li><a href="list.php?id=<?php echo $row['id']; ?>"><?php echo $row['name']; ?></a></li>

 <?php } ?> 

预期结果将是:

XXXSA3FFESS3052599004   L +

我的代码似乎不准确,如下所示。请指教。

XXXS3DFFESS3052599004L +

真的很感谢你的帮助。我不确定代码是什么。但我的基本理解是sed能够做到这一点。

3 个答案:

答案 0 :(得分:3)

或者像这样:

echo 'XXXSA3FFESS3052599004  L +' | sed 's/.//22;s/.//22'

答案 1 :(得分:2)

echo 'XXXSA3FFESS3052599004   L +' | sed 's/  *//'

输出:

XXXSA3FFESS3052599004L +

请参阅:The Stack Overflow Regular Expressions FAQ

答案 2 :(得分:1)

如果您的空间处于固定位置,使用cut可能更有意义:

echo 'XXXSA3FFESS3052599004  L +' | cut -c1-21,24-

echo 'XXXSA3FFESS3052599004  L +' | cut --complement -c22,23