我假设这里的每个人都熟悉所有文本文件应以换行符结尾的格言.多年来我一直都知道这个"规则",但我一直在想 - 为什么?
我有一些文件,如果它是文件中的最后一个字符,我想删除最后一个换行符. od -c告诉我,我运行的命令确实用一个尾随的新行写了一个文件:
0013600 n t > \n
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些与sed的技巧,但我能想到的最好的不是诀窍:
sed -e '$s/\(.*\)\n$/\1/' abc
Run Code Online (Sandbox Code Playgroud)
任何想法如何做到这一点?
这个问题是我用于"在vim中保存文件而没有在文件末尾强行添加换行符"的烦恼的后续工作.
基本上我不能set noeol在我用,.vimrc因为它什么都没做!
如果我以二进制模式编辑文件,它会执行它应该执行的操作.(vim -b file而不是vim file)
这是为什么?
无论如何都有一个简单的偏好,.vimrc不在我编辑的每个文件中添加换行符?
另外,如果我开始以二进制模式编辑每个文件,我会遇到什么样的问题?到目前为止,我没有看到任何差异.
我经常使用wordpress,有时我会暂时更改wordpress核心文件,以便了解发生了什么,特别是在调试时.今天我有点意外.当我准备将我的更改提交到我的git存储库时,我注意到它将git status一个wordpress'文件标记为没有为提交暂存.我记得在关闭它之前我已经将所做的所有更改还原到该文件中,因此我决定使用diff以查看已更改的内容.我将项目中的文件与我保存在下载目录中的wordpress副本上的文件进行了比较.事实证明文件在最后有所不同.diff表示原始文件末尾缺少换行符:
1724c1724
< }
\ No newline at end of file
---
> }
Run Code Online (Sandbox Code Playgroud)
我从来没有触及那条线.我在大文件中间某处所做的更改.这让我认为vim在文件末尾添加了换行符.为什么会这样?
我试图设置vim跳过在最后一行或eof上添加eol,我试过这个
:set binary
:set noeol
:w
Run Code Online (Sandbox Code Playgroud)
这不完美导致二进制覆盖文件类型供以后使用.
设置此项的任何其他选项,我不需要在最后一行换行.
我使用的是hadoop-1.2.1,sqoop版本是1.4.4.
我正在尝试运行以下查询.
sqoop import --connect jdbc:mysql://IP:3306/database_name --table clients --target-dir /data/clients --username root --password-file /sqoop.password -m 1
Run Code Online (Sandbox Code Playgroud)
sqoop.password是/sqoop.password具有权限400的路径中保存在HDFS上的文件.
它给了我一个错误
Access denied for user 'root'@'IP' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
谁能为此提供解决方案?提前致谢.
我有两个文件,一个有换行,一个没有:
文件:text_without_newline
$root@kali:/home#cat text_without_empty_line
This is a Testfile
This file does not contain an empty line at the end
$root@kali:/home#
Run Code Online (Sandbox Code Playgroud)
文件:text_with_newline
$root@kali:/home#cat text_with_empty_line
This is a Testfile
This file does contain an empty line at the end
$root@kali:/home#
Run Code Online (Sandbox Code Playgroud)
是否有命令或函数来检查文件末尾是否有换行符?我已经找到了这个解决方案,但它对我不起作用.(编辑:IGNORE:使用preg_match和PHP的解决方案也可以.)
考虑下面的代码片段,用于将文件内容读入缓冲区
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define BLOCK_SIZE 4096
int main()
{
int fd=-1;
ssize_t bytes_read=-1;
int i=0;
char buff[50];
//Arbitary size for the buffer?? How to optimise.
//Dynamic allocation is a choice but what is the
//right way to relate the file size to bufffer size.
fd=open("./file-to-buff.txt",O_RDONLY);
if(-1 == fd)
{
perror("Open Failed");
return 1;
}
while((bytes_read=read(fd,buff,BLOCK_SIZE))>0)
{
printf("bytes_read=%d\n",bytes_read);
}
//Test to characters read from the file to buffer.The file contains "Hello"
while(buff[i]!='\0')
{ …Run Code Online (Sandbox Code Playgroud) 我尝试从Vagrant更新我的Homestead框并收到404错误消息,我做了一些搜索,但不知道为什么我可以更新它的问题是什么.
? Homestead git:(master) ? vagrant box update
==> default: Checking for updates to 'laravel/homestead'
default: Latest installed version: 2.0.0
default: Version constraints: >= 0
default: Provider: virtualbox
There was an error while downloading the metadata for this box.
The error message is shown below:
The requested URL returned error: 404 Not Found
Run Code Online (Sandbox Code Playgroud) 我是Pylint的新手,当我针对我的脚本运行它时,我得到了这个输出:
C: 50, 0: Trailing newlines (trailing-newlines)
在这里,Pylint说最终换行是不好的.
我喜欢在我的脚本末尾有一个新行,所以我想我会禁用此警告.我做了一些谷歌网络搜索,发现了这个:http://pylint-messages.wikidot.com/messages: c0304
C0304消息
最后的换行线丢失了
描述
当Python源文件的最后一行没有行结束符时使用.
此消息属于格式检查器.说明
虽然Python解释器通常不需要在最后一行使用行结束字符,但是处理Python源文件的其他程序可能会这样做,并且拥有它是一种很好的做法.这在Python文档中得到了证实:行结构,其表明物理行由平台的相应行结束符号结束.
在这里,Pylint说错过最后的换行是不好的.
(A)正确的观点是什么?(B)如何禁用最终新行的检查?
{{编辑:事实证明,这不是Pylint的问题; 这是vim的一个问题,它会自动添加eol:VIM在文件末尾禁用自动换行 }}
我在 Google Kubernetes Engine 上的 kubernetes 集群中托管 mariadb。我正在使用来自 dockerhub ( ) 的官方 mariadb 镜像mariadb:10.5。
这是我的服务和部署的 yml
apiVersion: v1
kind: Service
metadata:
name: mariadb
spec:
ports:
- port: 3306
selector:
app: mariadb
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb
spec:
selector:
matchLabels:
app: mariadb
strategy:
type: Recreate
template:
metadata:
labels:
app: mariadb
spec:
containers:
- image: mariadb:10.5
name: mariadb
env:
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mariadb-secret
key: username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mariadb-secret …Run Code Online (Sandbox Code Playgroud) mysql mariadb docker google-cloud-platform google-kubernetes-engine