我正在从列表中下载一堆文件,使用wget
, 与此
wget -nc --input-file=list
这种方法的问题是,它会按顺序下载文件,并且需要很长时间。
我知道我可以将文件分成多个较小的文件并手动触发多个命令。我问是否可以自动完成。
我正在从列表中下载一堆文件,使用wget
, 与此
wget -nc --input-file=list
这种方法的问题是,它会按顺序下载文件,并且需要很长时间。
我知道我可以将文件分成多个较小的文件并手动触发多个命令。我问是否可以自动完成。
当我使用 Bash 脚本时,我总是使用vi
.
我正在调试一个理论上正确编写的脚本,我决定检查使用该命令创建的文件file
。这就是我所看到的。
myScript1 Bourne-Again shell script text executable, Unicode text, UTF-8 text
myScript2 ASCII text
myScript3 POSIX shell script text executable, ASCII text
myScript4 Unicode text, UTF-8 text
同一天创建的四个脚本怎么会有vi
不同的编码?
我正在调试的是ASCII text
如何将其更改为Bourne-Again shell script text executable, Unicode text, UTF-8 text
?
我有一个巨大的文本文件,其中包含以下结构:
title;description;date
问题是description
main 包含段落,例如:
title;description;data
MyText;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam est dolor, molestie a rhoncus vel, congue sed diam. Vestibulum pellentesque libero eleifend dolor finibus vestibulum. Curabitur at suscipit tellus, at viverra ex. Nulla sem nibh, laoreet a porta a, convallis ac augue. Aliquam diam sapien, rutrum sed nulla lobortis, hendrerit rutrum diam. Donec tellus quam, maximus at mollis sit amet, consequat eget orci. Duis id vestibulum metus. Nulla convallis tortor diam, a tempus quam mollis sed. Aliquam at fermentum nibh, quis sodales orci. Maecenas viverra ultrices lobortis. Morbi viverra, tortor in mattis tincidunt, augue erat condimentum leo, a dignissim nulla lacus ac augue. Sed tincidunt rutrum sapien, sodales commodo sapien. Sed ultrices, augue vitae porta viverra, eros magna pellentesque leo, in bibendum enim enim non nulla. Nullam vel venenatis leo.
Sed sed vulputate nulla. Nullam hendrerit justo quis ante aliquet ullamcorper. Praesent at rhoncus ipsum, in sodales felis. Nam eu ante accumsan urna tempus rutrum at in felis. Maecenas eleifend enim nec augue eleifend, ut sagittis leo tincidunt. In non felis pretium, accumsan mi sit amet, hendrerit lectus. Nullam auctor mi non ligula aliquam commodo. Nunc mollis consequat purus, sit amet rutrum elit sodales sit amet. Suspendisse potenti. Ut a tempor urna. Etiam vitae venenatis ex.
Nunc ut mattis nibh. Morbi varius accumsan purus, vel facilisis eros suscipit id. Sed non accumsan arcu, pretium pulvinar urna. Quisque a neque faucibus, condimentum velit eget, varius lorem. Duis varius iaculis ullamcorper. Maecenas vitae fringilla mi, ultrices finibus justo. Suspendisse vel nibh tortor. Nullam ullamcorper justo augue, molestie lacinia lorem varius et. Etiam sed pulvinar metus, ac euismod arcu. Morbi laoreet dolor volutpat, tempor nunc sit amet, lobortis ipsum. Quisque posuere commodo sollicitudin. Vivamus consectetur ligula sed ante tristique congue. Duis faucibus lacus tellus, sed consectetur purus ornare vitae.;2023-07-12
如何使用 macOS 终端将其转换为 JSON?
注意:由于敏感数据,我不想使用在线转换器。
我尝试过类似的东西
ruby -r json -r csv -e 'puts CSV.parse(STDIN, headers:true).map(&:to_h).to_json' < myFile.csv > myFile.json
但这些都失败了。我怀疑是因为他们将段落中的换行符解释为 CSV 行的结尾和下一行的开头。
当我执行 a 时,cat -e myFile.csv
我看到$
为行和段落内的分隔符的标记。一样的标记!
当我file
在CSV
我看到
Unicode text, UTF-8 text, with very long lines, with CRLF line terminators
我不知道该怎么做。
谢谢
我有一个包含数千行这样的 CSV 文件
1664;4;5;35;37;43;5;6
1663;21;23;32;40;49;8;11
1662;16;17;34;35;44;5;10
1661;2;9;23;32;40;6;7
1660;23;25;30;44;47;9;12
1659;3;5;9;32;43;6;10
1658;4;6;10;13;34;3;5
1657;8;9;33;35;40;3;6
1656;15;20;31;44;48;1;3
1655;25;27;35;40;45;7;11
1654;7;32;33;34;38;6;9
1653;5;7;11;27;37;6;12
1652;7;31;33;35;36;7;10
1651;4;12;34;35;45;1;9
1650;5;8;29;35;48;5;6
1649;2;11;28;42;48;4;9
1648;2;11;12;19;38;4;8
您可以看到 1 到 9 之间的数字都是个位数。
我如何使用sed
或将这些数字转换为两位数,方法是在它们前面加一个零,例如
01 02 03 04 05 06 07 08 09
代替
1 2 3 4 5 6 7 8 9
提前致谢。
我有一个包含如下文本块的 txt 文件:
17-01-2023
Purchase AAA
Apple Pay John Doe
Full Payment
-11,34€
0,11€
30-01-2023
Purchase BBB
Mastercard Jane Doe
Installment
-23,90€
0,24€
因此,我们依次有日期、购买类型、付款类型和姓名、付款类型、负值和折扣。
这些通过包含数千个条目的文件重复。
我想对这些值求和,在此示例中为 11,34 + 23,90,并将总和设为正数。请记住,数字后有一个欧元符号,在我的语言环境中,逗号是小数点分隔符。
我如何从终端使用 sed、awk 等来做到这一点?
我在一个主目录中有无数个目录。这些目录中的每一个都有多个级别的子目录。传播其中,有文件名为Info.plist
.
在这些Info.plist
文件中,有以下几行:
<string>/Users/Shared/Library/Mail/V7/74309-67B6-44E3-BD66-9384D1E54398/Junk.mbox</string>
这些行,每个文件可能是一个或多个,可能不同,例如
<string>/Users/Shared/Library/Mail/V7/74398/Junk.mbox</string>
<string>/Users/Shared/Library/Mail/V7/7-67B8/Sent.mbox</string>
<string>/Users/Shared/Library/Mail/V7/OLD/Old.mbox</string>
我有兴趣在这些Info.plist
文件中找到这些行并将Shared
部分更改为Fireball
.
因此,前一行将变为
<string>/Users/Fireball/Library/Mail/V7/74398/Junk.mbox</string>
<string>/Users/Fireball/Library/Mail/V7/7-67B8/Sent.mbox</string>
<string>/Users/Fireball/Library/Mail/V7/OLD/Old.mbox</string>
其余部分保持原样。
因此,首先我必须递归扫描目录结构,找到Info.plist
它们拥有的所有文件,扫描每个文件Info.plist
中的Shared
关键字(如果它们在路径中使用)并将其更改为Fireball
.
我如何使用一些神奇的 unix 命令来做到这一点?
我在摆弄这个
find . -type f -name Info.plist -exec sed 's/Shared/Fireball/g' {} +
这几乎似乎正在工作,因为它打印以控制台正确的更改,但文件没有改变。
我有一个 csv 文件,每行有七个数字,如下所示:
1083,20,28,42,23,10,43
1084,20,5,29,59,40,33
1085,39,50,21,12,40,55
1086,45,4,6,23,10,2
1087,36,46,28,32,3,20
我想保留第一个数字(第 1 列)并对第 2 到第 7 列进行排序,使文件像
1083,10,20,23,28,42,43
1084,5,20,29,33,40,59
1085,12,21,39,40,50,55
1086,2,4,6,10,45,23
1087,3,20,28,32,36,46
我怎样才能做到这一点awk
,sed
或者其他什么?
谢谢
我在一家不允许我在我的电脑上安装任何软件的公司工作,我在那里运行糟糕的窗口。
我需要清理从 Intranet 复制的大量文本并保存为 txt 文件。所以我必须使用sed
和/或awk
在线实时编辑器,像这样或这样
这些文字是这样的
01
010010-26.2010.501.0026 fafas fasdf asdf asdfsadf asdfasd fasd asasdff
fdfsadf adsf adsf asdf asdfas fadsf asdfa
02
0011-15.2016.501.0012 fafas fasdf asdf asdfsadf asdfasd fasd asasdff
asdfasd fasd asasdff
asdfasd fasd asasdff
0011-125.2013.501.0012
asdfasd fasd asasdff
看到这样的数字0011-15.2016.501.0012
就是我想要的。我不关心其余的,但我想用所有这些数字创建一个新的干净文本,每行一个。在前面的例子中,我需要一个文本
010010-26.2010.501.0026
0011-15.2016.501.0012
0011-125.2013.501.0012
.501.
总是存在,在所有数字中,作为第 4 组。
我在 sed 在线编辑器上试过这个命令
's/\([0-9]*\-[0-9]*\.[0-9]*\.501\.[0-9]*\)/\1/'
不工作。
当我打开 bash 并按向上箭头时,我看到了我输入的最后一个命令。继续按向上箭头将显示过去键入的一系列命令。
如何从该列表中找到一个特定命令,而不必按向上箭头 n 次?
我有一个类似的 CSV 文件
10;12;33;44;55;66;77;88
1;2;3;4;5;6;7;8
110;112;133;144;155;616;771;818
...etc
每行有八个数字,以 . 分隔;
。
我需要在每一行的开头添加一个新字段,从 1184 开始向下,所以最终文件将是
1184;10;12;33;44;55;66;77;88
1183;1;2;3;4;5;6;7;8
1182;110;112;133;144;155;616;771;818
... etc
我如何使用awk
macOS 或在 macOS 上运行的东西来做到这一点?
我有这样的文件
{"100":["0.00001","10","0.01"],
"101":["0.0001","100","0.1"],
"102":["1","1000","1"],
....
"103":["0.01","10000","10"]}
我想在每个数组中将第二个数字与第三个数字交换,将其转换为
{"100":["0.00001","0.01","10"],
"101":["0.0001","0.1","100"],
"102":["1","1","1000"],
....
"103":["0.01","10","10000"]}
我该如何使用sed
,awk
或其他方式做到这一点?
注意第一个和最后一个记录的存在{
和}
。
谢谢
我有几千行这样的行:
{"100K";"0.00001";"10";"0.01"]}
{"101K";"0.0001";"100";"0.1"]}
{"102K";"1";"1000";"1"]}
{"102K";"1";"1000";"1"]}
{"103K";"0.01";"10000";"10"]}
{"104K";"0.1";"100000";"100"]}
{"105K";"1";"1000000";"1000"]}
{"109K";"0.000001";"1";"1"]}
{"120K";"0.000012";"12";"12"]}
我想;
用:[
使这些线等于
{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}
我如何使用 sed 或其他 unix 命令来做到这一点?
我有这个脚本可以从很多mp4
视频中提取一帧并将它们存储为png
for i in *.mp4; do
[ -f "$i" ] || break
number=$(echo "$i" | grep -o -E '[0-9]+')
name=frame"$number".png
ffmpeg -i "$i" -ss 00:01:00.000 -vframes 1 "$name"
done
视频被命名为video1.mp4
,video2.mp4
等。因为循环使视频乱序,我从视频中提取数字以生成输出文件名。
这很好用,但文件的文件名png
是这样的:
frame1?4.png
, frame3?4.png
, frame3?4.png
...
为什么?4
?
啊,我现在看到 4 来自 mp4 上的 4。我怎样才能得到第一个数字?
我有一台服务器,其中包含很多要检查的域重定向。
我不相信浏览器缓存域的方式,所以我不确定我是看到它还是看到来自缓存的重定向。
有没有办法测试来自终端的重定向并在没有任何缓存的情况下看到真实的东西?
我努力了
curl -I http://example.com
正如其他帖子所述,但它没有在我的 Mac 上提供任何重要信息。
它给了我这个:
HTTP/1.1 406 Not Acceptable
Date: Mon, 29 Jan 2018 18:26:50 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
我有一个这样的txt文件
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGG
HHHHHHHHHHH
IIIIIIIIIII
每组 3 行,中间有换行符。
我想反转每组的前两行,使文件像这样
BBBBBBBBBB
AAAAAAAAAA
CCCCCCCC
EEEEEEEEEEE
DDDDDDDDDDD
FFFFFFFFFFF
HHHHHHHHHHH
GGGGGGGGGGG
IIIIIIIIIII
我该如何从终端做到这一点?
编辑:如果您需要针对它测试您的答案,我已将我的文本文件示例上传到此处。
我正在尝试/etc/hosts
在我的 Mac 上使用来阻止臭名昭著的卑鄙网站,例如mackeeper.com
并com-cleaner.systems
再次在弹出窗口中加载。
在这样做时,我在我的hosts
文件中找到了这些条目:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
所以我添加了这些......
127.0.0.1 mackeeper.com
127.0.0.1 www.mackeeper.com
127.0.0.1 mackeeperapp.zeobit.com
127.0.0.1 mackeeperapp2.mackeeper.com
127.0.0.1 *.mackeeper.com
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com
127.0.0.1 *.com-cleaner.systems
127.0.0.1 *.bet.pt
并且所有这些站点即使在重新启动后也能继续正常加载。
我也尝试过添加相同的行,fe80::1%lo0
无论::1
是否成功。
有任何想法吗?
我有一个文件使用 unix 表示法作为行尾,另一个文件使用 Windows 表示法。
当我vi
查看 unix 文件时,我在行尾看不到任何东西。当我vi
看到^M
蓝色的 windows 文件时
问题是,从中间往下,线条中没有^M
蓝色 (??)。
我正在尝试将整个文件转换为^M
所有行。
我已经尝试了很多命令,但特别是这个
sed -e 's/$/^M/' < input.txt > output.txt
将“^M”添加为两个字符,而不是添加,Command-M
并且它也在已经具有正确^M
字符的行上这样做......
我也试过
sed -e 's/\r/^M/' < input.txt > output.txt
和
sed -e 's/\n/^M/' < input.txt > output.txt
没有成功...
发出一个cat -e input.txt
我在 ^M 正确的行上看到了这个:
1895;2;3;5;10;14;34^M$
1896;3;6;14;15;21;25^M$
1897;9;22;25;47;52;58^M$
1898;12;34;45;53;55;58^M$
这在不正确的
1899;20;23;35;36;44;48$
1900;8;11;27;28;43;46$
1901;11;12;26;30;37;53$
1902;02;07;09;18;21;25$
1903;09;10;15;28;43;45$
如何使用 command-m 获取所有行?
我有一个像这样的文件
0001;4;5;30;33;41;52
0002;9;37;39;41;43;49
0003;10;11;29;30;36;47
0004;1;5;6;27;42;59
0005;1;2;6;16;19;46
0006;7;13;19;22;40;47
0007;3;5;20;21;38;56
... etc
第一个数字是计数器,后面六个是 1 或 2 位数字。
该文件有数千行这样的。它从 1 开始,一直到 9999。
有没有办法检查是否缺少一行?我的意思是,如果从第一行到最后一行的所有数字都存在?
我的意思是这样的:
0001;4;5;30;33;41;52 // first line
0002;9;37;39;41;43;49
0003;10;11;29;30;36;47
...
9999;3;4;8;12;55;88 // last line
0001 和 9999 之间是否缺少任何行?
假设:
0001;4;5;30;33;41;52
0002;9;37;39;41;43;49
0003;10;11;29;30;36;47
0004;1;5;6;27;42;59
0006;7;13;19;22;40;47
看?0005 不见了。
作为奖励,最好检查所有七个数字是否由;
任何其他字符而不是任何其他字符分隔。
谢谢