首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在第一个字母之后要删除额外的空格?

在第一个字母之后要删除额外的空格?
EN

Unix & Linux用户
提问于 2018-01-02 14:54:32
回答 3查看 621关注 0票数 1

在第一个字母之后要删除额外的空格?

我们的文件包括:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Blue    sky.    Nice       weather.
    White cloud.    Bright    sun.
        Cool air. Bla    bla          bla.

如何拥有这样的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Blue sky. Nice weather.
    White cloud. Bright sun.
        Cool air. Bla bla bla.

这个命令awk '{$1=$1} 1' file删除所有额外的空格。但是我们只需要在第一个字母之后去掉额外的空间。

有人知道吗?我们很感激你的关注!

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2018-01-02 18:16:35

使用GNU awk,您可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk '{match($0,/(^[ ]+)/,arr)}; {$1=$1;printf("%s%s\n", arr[1], $0)}' 

match($0, /(^[ ]+)/, arr)捕获行前导空间。$1=$1删除所有前导空格和重复空格。printf("%s%s\n", a[1], $0)}重新添加前导空格和打印.

票数 1
EN

Unix & Linux用户

发布于 2018-01-02 16:15:10

如果您运行的是Linux,并且具有GNU,您可以使用g标志和一个数字到sub妓女命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -r 's/ +/ /g2' file.txt

引用info sed的话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Note: the POSIX standard does not specify what should happen when
 you mix the `g' and NUMBER modifiers, and currently there is no
 widely agreed upon meaning across `sed' implementations.  For GNU
 `sed', the interaction is defined to be: ignore matches before the
 NUMBERth, and then match and replace all matches from the NUMBERth
 on.

但是,由于在一种情况下,您确实希望在空格的第一个实例上进行替换(当没有前导空格时),所以完整的答案(用GNU Sed)是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -r 's/^/ /;s/ +/ /g2;s/^ //' file.txt

换句话说,向所有行添加一个前导空间,然后“挤压”除第一个以外的连续空格的所有实例,然后删除添加的前导空间。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unexpand file.txt | sed 's/  */ /g' | expand

或者更简单地说:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unexpand file.txt | tr -s ' ' | expand
票数 2
EN

Unix & Linux用户

发布于 2018-01-02 18:13:46

awk中,这里有一种接吻的方法,我认为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{tmp = substr($0,1,match($0,/[^ \t]/)-1); $1=$1; print tmp""$0}

例如。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ awk '{tmp = substr($0,1,match($0,/[^ \t]/)-1); $1=$1; print tmp""$0}' file
Blue sky. Nice weather.
    White cloud. Bright sun.
        Cool air. Bla bla bla.
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/414390

复制
相关文章
WPF Window 窗口获得焦点和失去焦点事件
Window 窗口获得焦点和失去焦点事件(窗口变为背景窗口、窗口切换等都引起窗口焦点失去) Activated获得焦点事件 和 Deactivated失去焦点的事件: Activated: 获得焦点 (首次打开软件时;由别的软件切换回当前软件时;点击当前软件在任务栏的按钮时) Deactivated:失去焦点,与Activated正好相反,(Deactivated = de + activated) 使用方法有两种: 第一种是在XAML中声明,然后在后台书写执行代码:
全栈程序员站长
2022/09/12
4.8K0
windows获取激活焦点的窗口句柄
头文件 #include <windows.h> #include <winuser.h> 依赖库 user32.lib 操作接口 HWND w = GetForegroundWindow();
Qt君
2023/03/17
4.1K0
windows获取激活焦点的窗口句柄
WPF 设置 ShowInTaskbar 对窗口最小化的影响
在 WPF 中,如果设置了 ShowInTaskbar 为 False 那么窗口将不会在任务栏显示。此时如果设置窗口最小化,那么窗口将会收起来作为没有任务栏时的显示方法
林德熙
2021/03/23
1.3K0
WPF 设置 ShowInTaskbar 对窗口最小化的影响
WPF 自定义文本框输入法 IME 跟随光标
本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴。在开始之前,期望了解了文本库开发的基础知识
林德熙
2022/03/15
1.8K0
java文本框获得输入焦点_文本框获得焦点和失去焦点的判断代码
对于元素的焦点事件,我们可以使用jQuery的焦点函数focus(),blur()。
全栈程序员站长
2022/09/14
4.1K0
.NET/C# 使窗口永不激活(No Activate 永不获得焦点)
发布于 2018-07-24 06:19 更新于 2018-08-31 23:58
walterlv
2018/09/18
2.8K0
.NET/C# 使窗口永不激活(No Activate 永不获得焦点)
WPF 让窗口激活作为前台最上层窗口的方法
在 WPF 中,如果想要使用代码控制,让某个窗口作为当前用户的输入的逻辑焦点的窗口,也就是在当前用户活动的窗口的最上层窗口,默认使用 Activate 方法,通过这个方法在大部分设备都可以做到激活窗口
林德熙
2020/04/26
3.3K0
WPF 解决弹出模态窗口关闭后,主窗口不在最前
本文告诉大家如何解决这个问题,在 WPF 的软件,弹出一个模态窗口。使用另一个窗口在模态窗口前面。从任务栏打开模态窗口。关闭模态窗口。这时发现,主窗口会在刚才使用的另一个窗口下面。
林德熙
2018/09/18
14.9K2
WPF 解决弹出模态窗口关闭后,主窗口不在最前
本文告诉大家如何解决这个问题,在 WPF 的软件,弹出一个模态窗口。使用另一个窗口在模态窗口前面。从任务栏打开模态窗口。关闭模态窗口。这时发现,主窗口会在刚才使用的另一个窗口下面。
林德熙
2019/03/13
5.3K0
WPF 解决弹出模态窗口关闭后,主窗口不在最前
本文告诉大家如何解决这个问题,在 WPF 的软件,弹出一个模态窗口。使用另一个窗口在模态窗口前面。从任务栏打开模态窗口。关闭模态窗口。这时发现,主窗口会在刚才使用的另一个窗口下面。
林德熙
2022/08/04
5.8K0
WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
目录 WPF的消息机制(一)-让应用程序动起来 WPF的消息机制(二)-WPF内部的5个窗口 (1)隐藏消息窗口 (2)处理激活和关闭的消息窗口以及系统资源通知窗口 (3)用于用户交互的可见窗口 (4)用于UI窗口绘制的可见窗口 WPF的消息机制(三)-WPF输入事件的来源 WPF的消息机制(四)-WPF中UI的更新 处理应用程序激活和系统关闭的窗口(Window 2#) 创建时机:在调用Application.Run之后,运行到Application.EnsureHwndSource()方法当中。 用途:
葡萄城控件
2018/01/10
1.9K0
WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
在js(jquery)中获得文本框焦点和失去焦点的方法
对于元素的焦点事件,我们可以使用jQuery的焦点函数focus(),blur()。focus():得到焦点时使用,和javascript中的onfocus使用方法相同。 如:
一朵灼灼华
2022/08/05
10.2K0
silverlight WPF 水纹文本框
silverlight3取消了watertextbox控件,只有自己实现了个,实现了和textbox一样的无差异使用,只需要设置defaulttext就可以了
用户6362579
2019/09/29
1.3K0
WPF 开启Pointer消息存在的坑
启用了Pointer之后,调用Textbox.Focus(),起不来屏幕键盘,必须点在它之上才行,触摸在它之上才行
林德熙
2022/08/12
8600
WPF 开启Pointer消息存在的坑
【愚公系列】2023年09月 WPF控件专题 Window窗体属性和事件
Windows窗体是Microsoft .NET Framework中提供的一种可视化用户界面(GUI)组件,它提供了一个容器,可以在其中添加其他控件,例如按钮、文本框、标签等,以便用户与应用程序交互。通过向窗体添加控件,并使用事件处理程序来响应用户交互,可以创建功能强大的Windows桌面应用程序。
愚公搬代码
2023/09/18
5050
WPF窗口置顶
但是如果其他程序也置顶,后来的置顶就会覆盖之前的置顶,所以我们要保证我们的窗口永远置顶就要做如下设置。
码客说
2022/04/19
2.3K0
过滤窗口最小化事件
本文以简单的例子实现windows平台下的过滤窗口最小化事件功能。 例子: #include <QApplication> #include <QWidget> #include <QAbstractNativeEventFilter> #include <windows.h> class NativeFilter : public QAbstractNativeEventFilter { bool nativeEventFilter(const QByteArray &eventType,
Qt君
2023/03/17
1.1K0
过滤窗口最小化事件
WPF 获取某个窗口的所有子窗口
如果不用到 Win32 方法,可以尝试遍历所有窗口获取 Owner 判断,不过此方法仅仅适合只有一个主线程
林德熙
2022/08/12
2.4K0
WPF 可获得焦点属性
本文来告诉大家 WPF 的可获得焦点属性,如果希望一个元素可以获得键盘输入,那么就需要一个元素是可以获得焦点,而且焦点就在元素上。
林德熙
2022/08/04
1.4K0
WPF 可获得焦点属性
本文来告诉大家 WPF 的可获得焦点属性,如果希望一个元素可以获得键盘输入,那么就需要一个元素是可以获得焦点,而且焦点就在元素上。
林德熙
2018/09/19
4.5K1
WPF 可获得焦点属性

相似问题

获取当前位置

20

获取当前位置

13

如何获取当前位置?

23

Mapbox获取当前位置

10

Android获取当前位置

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文