我有一个csv文件,其中包含以下内容:
"user1","track1","player1" "user1","track2","player2" "user2","track1","player1""user2","track2","player2".....
我需要在此模式之前插入一个新行:"user
。
实际上在开始时我用这个命令用新行代替每个空格
awk -v RS=" " '{print}' myfile >output.csv
然后我发现在我的文件中的某些点上,在某些用户之前没有空格,当我插入数据库时,列的值在这些点交换了......:|。所以我想知道是否有人知道如何在特定字符集之前插入新行以避免该问题..
谢谢,
答案 0 :(得分:1)
使用 GNU <div class="panel-body">
<form action = "<?base_url();?>" method = "POST">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="Username" name="username">
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="">
</div>
<input type = "submit" class="btn btn-lg btn-success btn-block" value = "Login" name = "login">
</fieldset>
</form>
</div>
,你可以试试这个:
sed
使用BSD / OSX sed -r 's/(.)("user)/\1\n\2/g' myfile >output.csv
(在替换字符串中不支持转义序列sed
,使用ANSI C-quoted string字符串),请使用:
\n
严格遵守POSIX sed -E $'s/(.)("user)/\\1\\\n\\2/g' myfile >output.csv
# Alternative, with the ANSI C-quoted quoted string spliced in only where needed.
sed -E 's/(.)("user)/\1\'$'\n''\2/g' myfile >output.csv
,使用文字换行而不是转义序列sed
:
\n
请注意,对于您的示例输入,某些行将具有尾随空格。
答案 1 :(得分:1)
使用awk
awk '{gsub(/"user/,"\n\"user"); print}' file
如果文件以"user
如果你想摆脱它,你可以这样做:
awk '{gsub(/"user/,"\n\"user"); sub(/^\n/,""); print}' file