我已经xml2多次推荐该软件包。它是一个有用的工具,可以将合理格式良好的 XML 数据转换为面向行的格式,可以使用grep或awk等进行搜索以进行简单的提取。甚至使用2xml包中的相应程序进行简单的更改。
debian 包描述说:
Package: xml2
Source: xml2 (0.4-3.1)
Version: 0.4-3.1+b1
Installed-Size: 66
Maintainer: Patrick Schoenfeld <schoenfeld@debian.org>
Architecture: amd64
Depends: libc6 (>= 2.14), libxml2 (>= 2.7.4)
Description-en: Convert between XML, HTML, CSV and a line-oriented format
xml2 tools are used to convert XML, HTML and CSV to and from a
line-oriented format more amenable to processing by classic Unix
pipeline processing tools, like grep, sed, awk, cut, shell scripts,
and so …Run Code Online (Sandbox Code Playgroud) 我要解析数据googleapis.txt
bucket,abc-def-ghi-45gjd4-wwxis
bucket,dde-wwq-ooi-66ciow-po22q
instance,jkl-mno-1-zzz-68dkakw-oo9w8
disk,pqr-stu-10-kuy-l2oxapw-rp4lt
Run Code Online (Sandbox Code Playgroud)
我期待下面的结果
bucket,abc-def-ghi
bucket,dde-wwq-ooi
instance,jkl-mno-1-zzz
disk,pqr-stu-10-kuy
Run Code Online (Sandbox Code Playgroud)
我想我必须更改-为空格然后运行此命令
cat googleapis.txt | awk '{$NF="";sub(/[ \t]+$/,"")}1' | awk '{$NF="";sub(/[ \t]+$/,"")}1'
Run Code Online (Sandbox Code Playgroud)
我从这个/sf/answers/1945609501/得到了
解析后,我将把空格改-回连字符。
有谁知道解析它的最佳实践或单行 shell 命令?谢谢大家
如何选择.txt以当前目录结尾的所有文件,而忽略子目录中的所有文件?
*.txt也选择.txt以子目录结尾的所有文件。我如何省略它们?
目录结构:
current folder
|-first_file.txt
|-sub_folder
|-second_file
Run Code Online (Sandbox Code Playgroud)
我正在尝试将 first_file 单独添加到 git 存储库中。但是这样做git add *.txt会将第一个和第二个文件添加到舞台上。我只想添加 first_file。
我已经看到为什么'find -exec cmd {} +'需要以'{} +'结尾?这解释了为什么{} +必须位于-exec cmd(*) 的末尾,现在我想知道为什么当您使用(或已弃用的)时 GNUxargs会恢复为每个输入参数一个命令...或者如手册页所述-I-i
-I 替换-str [...] 意味着 -x 和 -L 1。
例如:
$ seq 1 10 | xargs echo
1 2 3 4 5 6 7 8 9 10
$ seq 1 10 | xargs -I {} echo {}
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
xargs 手册页的 BUGS 部分仅说明:
-L 选项与 -I 选项不兼容,但也许不应该兼容。
和
当您使用 -I 选项时,从输入读取的每一行都会在内部缓冲。这意味着与 -I 选项一起使用时 …
我知道这已经讨论过很多次了,但是互联网上有很多不同的意见,哪些优化对 SSD 有利(以及是否使用它们)。此外,技术已经进步,一些建议可能已经过时。
这似乎仍然相关,但根据ycombinator讨论中的用户 cabirum 的说法:
您不必过度配置未分区的空间并保留 20% 的分区可用空间。这是一个或另一个,关键是要有足够的可用空间来进行适当的磨损平衡。
另一方面,在ArchWiki或namhuy 的这篇文章中没有提到它。还有什么更简单的 Linux建议!
namhuy建议两者,ArchWiki和easylinux建议仅 noatime 和用户 andmarios 在ycombinator说:
noatime:这是旧的,使用relatime。
这是根据自 Linux 2.6.30 以来的手册页默认行为。
这可能是最大的混乱
/etc/rc.local. 不要使用discard挂载选项。fstrim.service和fstrim.timer. 警告有关discard.discard选项。ArchWiki、namhuy、easylinux建议将浏览器缓存移至 RAM。这在ycombinator 中通常是不同意的。 …
机器:东芝MK1646GSX,intel atom CPU@1.60Ghz,2048Mb。32 位。
操作系统:LINUX Lite 3.8
我试图安装 PIDGIN 依赖项:
~> sudo apt-get build-dep pidgin
Run Code Online (Sandbox Code Playgroud)
然后我得到了这个而不是安装build-dep:
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list
Run Code Online (Sandbox Code Playgroud)
所以我搜索了,我发现消息来源说我应该rm -rf the sources.list,然后apt-get update列表会自己创建。结果并不好,就像我所期望的那样,该列表没有自行创建。之后,我创建了一个具有相同内容的新列表,我试图确保每一行都拥有它deb-src。所有的行都是正确的。但是当我尝试安装build-dep. 该怎么办?
从 justpaste 链接复制的 sources.list:
###### Ubuntu Main Repos
deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
###### Ubuntu Update Repos
deb http://archive.ubuntu.com/ubuntu xenial-security main restricted …Run Code Online (Sandbox Code Playgroud) 在这里得到一个列表,如下:
07:41 0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2,
04:11 1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2,
06:22 1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2,
03:39 8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2,
07:35 9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2,
01:16 2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2,
01:08 1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2,
08:07 1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2,
05:70 1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2,
06:41 9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2,
01:70 1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2,
09:12 9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2,
Run Code Online (Sandbox Code Playgroud)
反正可以加一个“;” (分号)在小时和文件名之间的每个空格中,结果如下?
07:41;0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2,
04:11;1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2,
06:22;1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2,
03:39;8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2,
07:35;9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2,
01:16;2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2,
01:08;1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2,
08:07;1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2,
05:70;1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2,
06:41;9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2,
01:70;1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2,
09:12;9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2,
Run Code Online (Sandbox Code Playgroud) 我用cat /proc/<pid>/limits命令检查了最大打开文件硬限制和软限制,但我想知道这个值将如何设置,可以增加或减少吗?
这个值是在某个配置文件中设置的吗?
我试过ulimit命令,但这对设置特定进程的限制没有帮助。
# ulimit -n 2048
Run Code Online (Sandbox Code Playgroud)
但我仍然看到 1024
# cat /proc/<pid>/limits
..
Max open files 1024 4096 files
..
Run Code Online (Sandbox Code Playgroud)
我知道有人问过类似的问题,但我找不到更好的答案。
我有一台 Macbook pro,我成功设置了授权密钥,这样每次登录远程机器时都不必输入密码。
多年后,我有了一台安装了 Ubuntu 的新计算机。我现在正在尝试做同样的事情,但我遇到了问题。
到目前为止,我已经运行ssh-keygen -t dsa并将我的~/.ssh文件夹的权限更改为 700,并将id_dsa*文件的权限更改为 600
我已经更新了authorised_keys远程机器上的文件,现在它看起来像:
ssh-rsa KEYFORTHEOLDMACHINEWHICHISTILLUSE
ssh-dss KEYFORTHENEWMACHINE
Run Code Online (Sandbox Code Playgroud)
我在两者之间有一个空间。我不知道这是否重要,但我没有尝试空格,并且它们之间也有换行符。
我已经确保我的服务器上的权限也如上。
但是当我ssh进入时,仍然提示我输入密码。有什么明显的我做错了吗?
更新:
当我运行时ls -ld ~/ ~/.ssh ~/.ssh/authorized_keys,我得到以下信息:
drwxr-xr-x 5 myusername domain users 4096 Jun 8 20:58 /home/myusername/
drwx------ 2 myusername domain users 4096 Jun 8 18:06 /home/myusername/.ssh
-rw------- 1 myusername subdept-phys-sags 1044 Jun 8 18:06 /home/myusername/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
更新:
当我运行时ssh -vv remote_server,我得到以下信息:
OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips 1 Mar 2016
debug1: …Run Code Online (Sandbox Code Playgroud)