'git stripspace' 是如何工作的(文档无用)
How does 'git stripspace' actually work (documentation useless)
我正在尝试 运行 git stripspace
但 documentation 出奇地毫无价值。
出现 git stripspaces
将 stdin
作为其输入并写入 stdout
但是:
% git stripspace < myfile.txt > myfile.txt
删除了myfile.txt
中的所有文字
我希望文档提供一个调用示例。有人有吗?
您正在从和重定向到同一个文件。
这就是问题所在。
尝试更改您的简单命令,即:
git stripspace < myfile.txt > myfile.txt
对此:
git stripspace < myfile.txt > my-other-file.txt
它应该工作得很好。
sponge
正是解决这个问题的工具。它首先 "soaks up" 所有通过管道传输到其中的数据,然后将其写出到指定的文件。它是 moreutils
软件包的一部分 - 在 Ubuntu 上使用 sudo apt install moreutils
、
安装它
这是一个使用文件 spacetest.txt
的示例 - awk
命令用于帮助可视化文件中存在的尾随空格:
# print the file spacetest.txt with '%' appended to each line-end to show trailing spaces
~/temp/stripspace-test$ awk '{ print [=10=] "%" }' spacetest.txt
%
%
line 1 has a space at the end %
line 2 has 2 spaces at the end %
line 3 has 3 spaces at the end %
%
the next line has 4 spaces%
%
three blank lines follow this one%
%
%
%
# 'redirect' from and to spacetest.txt using `sponge` as a go-between
~/temp/stripspace-test$ git stripspace < spacetest.txt | sponge spacetest.txt
# print the file spacetest.txt again to demonstrate everything is as expected
~/temp/stripspace-test$ awk '{ print [=10=] "%" }' spacetest.txt
line 1 has a space at the end%
line 2 has 2 spaces at the end%
line 3 has 3 spaces at the end%
%
the next line has 4 spaces%
%
three blank lines follow this one%
我正在尝试 运行 git stripspace
但 documentation 出奇地毫无价值。
出现 git stripspaces
将 stdin
作为其输入并写入 stdout
但是:
% git stripspace < myfile.txt > myfile.txt
删除了myfile.txt
我希望文档提供一个调用示例。有人有吗?
您正在从和重定向到同一个文件。
这就是问题所在。
尝试更改您的简单命令,即:
git stripspace < myfile.txt > myfile.txt
对此:
git stripspace < myfile.txt > my-other-file.txt
它应该工作得很好。
sponge
正是解决这个问题的工具。它首先 "soaks up" 所有通过管道传输到其中的数据,然后将其写出到指定的文件。它是 moreutils
软件包的一部分 - 在 Ubuntu 上使用 sudo apt install moreutils
、
这是一个使用文件 spacetest.txt
的示例 - awk
命令用于帮助可视化文件中存在的尾随空格:
# print the file spacetest.txt with '%' appended to each line-end to show trailing spaces
~/temp/stripspace-test$ awk '{ print [=10=] "%" }' spacetest.txt
%
%
line 1 has a space at the end %
line 2 has 2 spaces at the end %
line 3 has 3 spaces at the end %
%
the next line has 4 spaces%
%
three blank lines follow this one%
%
%
%
# 'redirect' from and to spacetest.txt using `sponge` as a go-between
~/temp/stripspace-test$ git stripspace < spacetest.txt | sponge spacetest.txt
# print the file spacetest.txt again to demonstrate everything is as expected
~/temp/stripspace-test$ awk '{ print [=10=] "%" }' spacetest.txt
line 1 has a space at the end%
line 2 has 2 spaces at the end%
line 3 has 3 spaces at the end%
%
the next line has 4 spaces%
%
three blank lines follow this one%