我正在尝试更改文件中的文本:
file.txt,c:\path\to\file
file.txt,c:\path with spaces\to\file
file.txt,c:\path\to\file with spaces
file.txt,c:\path\to\file with spaces
file.txt,c:\path\to\file with spaces
Run Code Online (Sandbox Code Playgroud)
对于这种输出(文件的一个路径):
c:\path\to\file\file.txt
c:\path with spaces\to\file\file.txt
c:\path\to\file with spaces\file.txt
c:\path\to\file with spaces\file.txt
c:\path\to\file with spaces\file.txt
Run Code Online (Sandbox Code Playgroud)
这个ALMOST有效,但在行尾需要',':
sed 's@\(.*\),\(.*\),\(.*\)@\2,\1,\3@g' file
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,我不知道这一切都很好...
编辑
这对我有用,但我还是想在其中添加一个"\":
sed 's@\(.*\),\(.*\)@\2,\1,\3@g' file
Run Code Online (Sandbox Code Playgroud) 试图在我的 bash 脚本中找出一种方法来检查文件是否是动画 PNG (apng) 文件。就我而言,如果是的话,我想忽略它。有任何想法吗 ?
更新:下面使用 pngcheck 的答案允许我检查图像是否是动画。另外,我检查文件的大小,如果它“大”,我也会忽略它。最后,截至 2017 年 11 月,“识别”不起作用,这主要是我最初的问题。感谢马克的帮助。
好吧,我一直有这个问题。我只想使用 yum 从 Linux 系统(RHEL 或 Fedora)通过 bash 脚本在文件中列出可用的更新,但我总是必须处理创建的标头信息,如下所示:
Loaded plugins: XXXX-repo XXXX-updates
: WWWWWW-repo something-updates QQQQQ-updates
Updated packages
package1.i686 1:234 RHEL 6.5 updates
package2.i686 1:234 RHEL 6.5 updates
package3.i686 1-234 RHEL 6.5 updates
package4.noarch 1.234 RHEL 6.5 updates
Run Code Online (Sandbox Code Playgroud)
我想要的只是 package1、package2 等的列表,这看起来很简单,但事实并非如此,因为我不能只 grep 上“更新”或“:”。我是不是看错了?为什么我不想捕获脚本中发现的更新?我应该只更新并检查更新了什么吗?想法?
PS> 我无法使用 --noplugins 选项。
编辑:到目前为止我已经想出了这个,
sudo yum check-update | grep "\." | awk '(NR >=1) {print $1;}' | grep '^[[:alpha:]]'
Run Code Online (Sandbox Code Playgroud)
基本上抓住其中有句点的行,即第一行,并确保它首先包含字母。也许做得有点过头了,但似乎有效。
在我的页面上,我有:
<div id='something'></div>
Run Code Online (Sandbox Code Playgroud)
我想使用JS将这种类型的“按钮”附加到它:
<a href="/news_events/"><span class="picon-p-add-news"></span>Read more news</a>
Run Code Online (Sandbox Code Playgroud)
我尝试使用document.createElement,但是我不确定如何使它不仅仅是将其附加为文本。我该怎么做呢 ?
您好试图按月和日排序此列表.不能得到它的直言不讳.有什么指针吗?
列表示例:
Jul 23 Drive :NTFS (Windows 31.6 GB/29.4 GiB) Details : Mounted /dev/sdc1 (Read-Write, label "FreeAgent GoFlex Drive", NTFS 3.1)
Jul 30 Drive :NTFS (Windows 31.6 GB/29.4 GiB) Details : Mounted /dev/sdb1 (Read-Write, label "HP USB FD", NTFS 3.1)
Aug 2 Drive :NTFS (Windows 31.6 GB/29.4 GiB) Details : Mounted /dev/sdb1 (Read-Write, label "WINPART", NTFS 3.1)
Jul 24 Drive :EXT (Linux) Details : EXT3-fs (sdc1)
Jul 25 Drive :EXT (Linux) Details : EXT3-fs (sdb1)
Jul 27 Drive :EXT (Linux) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种更清洁的方法来做到这一点.我很确定它是错的,即使它有点有用.基本上我从文件(temp.txt)中获取这样的输出:
Host Name: IBM-3J93A46MRS5
OS Name: Microsoft Windows 7 Professional
OS Version: 6.1.7631 Service Pack 1 Build 7601
OS Configuration: Standalone Workstation
Registered Owner: IAMADMIN
Original Install Date: 2011-12-15, 10:56:07 AM
System Boot Time: 2013-05-27, 9:55:36 AM
System Manufacturer: DELL
System Model: 4009BF7
Time Zone: (UTC-05:00) Eastern Time (US & Canada)
Total Physical Memory: 16,316 MB
Available Physical Memory: 11,356 MB
Run Code Online (Sandbox Code Playgroud)
并尝试将第二列数据放入变量中.取决于我是否想要它.我正在使用Findstr来清除它.
@echo off
setlocal enabledelayedexpansion
systeminfo > temp.txt
set "tmp_result_file=temp.txt"
for /f "tokens=3-7 delims= " %%i in ('FINDSTR /C:"OS …Run Code Online (Sandbox Code Playgroud) 我正在寻找修剪文件,我需要在第二场比赛后(以及第一场比赛前的所有内容)删除所有内容.
比如说我有这个文字:
xxx xxx
yyy yyy
New USB device found
xxx xxx
yyy yyy
zzz zzz
New USB device found
xxx xxx
yyy yyy
Run Code Online (Sandbox Code Playgroud)
如果我使用以下sed命令:
sed -i '1,/New USB device found/d' <FILE>
Run Code Online (Sandbox Code Playgroud)
这会在第一场比赛前删除所有内容.这很棒:
New USB device found
xxx xxx
yyy yyy
zzz zzz
New USB device found
xxx xxx
yyy yyy
Run Code Online (Sandbox Code Playgroud)
但我只有1/2路,现在我想在第二场比赛后删除所有内容以获得此结果:
New USB device found
xxx xxx
yyy yyy
zzz zzz
Run Code Online (Sandbox Code Playgroud)
因此只是第一个设备的数据.
我需要一个bash脚本命令来查看/ etc/fstab并找到包含挂载名称"/ mymount"的行,并在行的开头添加一个"#"来注释掉它.
由此:
/dev/lv_mymount /mymount ext4 defaults 1 2
Run Code Online (Sandbox Code Playgroud)
对此(带#):
#/dev/lv_mymount /mymount ext4 defaults 1 2
Run Code Online (Sandbox Code Playgroud) 在bash中,我经常检查一个变量的值,它是否可以这样做?有没有更好的办法?
例:
if [ "`echo ${file} | grep -vE '(Trash|home)'`" ] ;then
Run Code Online (Sandbox Code Playgroud)
这是检查变量文件不包含单词Trash或home,如果它不执行某些操作.关键是我使用echo和grep,我认为这可能是浪费.
另一个例子:
if [ "`less ${TEMPQUERY} | grep 'http'`" ] ;then
Run Code Online (Sandbox Code Playgroud)
这是检查文件中的字符串http,如果它在文件中,则执行某些操作.
我想我只是想知道别人做了什么,如果有一些强烈的理由我不应该以这种方式编码.无论如何,提前谢谢你的时间.
我需要弄清楚当前日期6/6/2013是否为MM/DD/YYYY与DD/MM/YYYY格式.因此他们都是"6".
我要做的是采取当前日期,然后添加3天,从那里我会知道哪一个是MM字段,因为它不会改变.我不知道如何批量打印日期+ 3天.它甚至可能吗?有没有人有任何想法?我已经在这里待了几个小时.我试图使用GNU date命令,但我必须指定输出,所以它没有帮助.. GRR!
注意,这适用于WINDOWS.请注意,我正在查看的文件无法更改,因此如果日期是9/9/2013,那么我必须使用它来确定字段.
编辑:我最终使用以下代码:它有点完成但你可以看到我基本上是这样做的.我设置值的原因是因为我将它与Gnu date.exe命令结合使用,该命令非常适合根据特定日期提供日期.所以脚本中的其他地方我使用它如下:date.exe - 日期"现在-90天"%DATEFORMAT%.我不得不放弃在另一篇文章中建议的日期/ T选项,因为这实际上并没有显示所有情况下的正确数据.
for /F "skip=1 tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate ^< NUL') do (
echo.%%a|findstr /C:"/" >nul 2>&1 && set DELIM=/
echo.%%a|findstr /C:"-" >nul 2>&1 && set DELIM=-
echo.%%a|findstr /C:"." >nul 2>&1 && set DELIM=.
for /F "tokens=1-3 delims=-/." %%b in ("%%a") do (
set format=%%b%%c%%d
)
)
if %DELIM%==/ (
:: US English options
if %format%==Mdyyyy set DATEFORMAT=+%%-m/%%-d/%%Y
if %format%==Mdyy set DATEFORMAT=+%%-m/%%-d/%%y
if %format%==MMddyy set DATEFORMAT=+%%m/%%d/%%y …Run Code Online (Sandbox Code Playgroud)